Graphics Contest 2017, please vote now! lazarus / 39-Graphics ---------------------------------------------------------------------- lainz · 2017-01-03 14:24 Welcome to the Graphics Contest 2017! It's time to vote! Official contest 2017 repository: https://github.com/lazarusccr/GraphicsContest Download 2017 binaries: https://github.com/lazarusccr/GraphicsContest/releases/tag/2017 This is the third graphics contest we do in the Lazarus forum. The main idea is to share the creations with other users of the forum and mantain a repository of open source code with all participations. Categories you can participate are (not limited to, it means you can invent something out of the ordinary too): - UI Design - Animation - Game design - Photo manipulation - Anything you can do with graphics! Libraries that can be used: - You can use any graphics related library or unit that works with FPC / Lazarus, check the wiki for a list (not limited to this list): http://wiki.lazarus.freepascal.org/Developing_with_Graphics#Libraries Deadline Previous years the deadline was too short, you know excepting the students (that doesn't work) and retired, most people here spent their time working. Another thing of consideration if that vacation/recess are different time in each part of the world, so maybe you're free now as me but alongside the year you're not, and inverse in other places. Update: The deadline is over, now you can vote until September 1. Previous years winners: 2015: aradeonas 2016: Michl Previous years contests: 2015 Contest: http://forum.lazarus.freepascal.org/index.php/topic,29038.0.html 2016 Contest: http://forum.lazarus.freepascal.org/index.php/topic,32626.0.html Previous years repository: https://github.com/bgrabitmap/bgracontest (source code) https://github.com/bgrabitmap/bgracontest/releases (binaries) In that repository you will find the 2015, 2016 participations source code and binaries. ---------------------------------------------------------------------- Handoko · 2017-01-03 17:06 I'm in. I wanted to participate in contest 2016, but I can't because I was busy. Now, I won't pass this chance. ---------------------------------------------------------------------- DiCri · 2017-01-03 17:14 I'm in! ---------------------------------------------------------------------- DiCri · 2017-01-03 17:21 Can i use SDL2 for this graphics contest? ---------------------------------------------------------------------- lainz · 2017-01-03 17:34 Quote from: Manu12x on January 03, 2017, 06:21:28 pmCan i use SDL2 for this graphics contest? Yes! Sure. Quote from: Handoko on January 03, 2017, 06:06:33 pmI'm in. I wanted to participate in contest 2016, but I can't because I was busy. Now, I won't pass this chance. Thanks for joining! Quote from: Manu12x on January 03, 2017, 06:14:36 pmI'm in! Yeah! ---------------------------------------------------------------------- Ñuño_Martínez · 2017-01-04 11:45 Me wants.  I'll not rest until you all wipe out SDL from your HD and use Allegro. ---------------------------------------------------------------------- lainz · 2017-01-04 13:22 Quote from: Ñuño_Martínez on January 04, 2017, 12:45:33 pmMe wants.  I'll not rest until you all wipe out SDL from your HD and use Allegro.  There's a great game made with Allegro I used to create levels and graphics for it, Open Sonic http://opensnc.sourceforge.net/home/index.php (it's made in C). Well the winner will tell the others wich library to use  I will not win (again) xD ---------------------------------------------------------------------- Ñuño_Martínez · 2017-01-05 13:04 Quote from: lainz on January 04, 2017, 02:22:58 pmQuote from: Ñuño_Martínez on January 04, 2017, 12:45:33 pmMe wants.  I'll not rest until you all wipe out SDL from your HD and use Allegro.  There's a great game made with Allegro I used to create levels and graphics for it, Open Sonic http://opensnc.sourceforge.net/home/index.php (it's made in C). Well the winner will tell the others wich library to use  I will not win (again) xD Didn't know about that game.  And has a lot of cool stuff.  I'll download it and see what I can sole... learn!  I've said learn. ---------------------------------------------------------------------- lainz · 2017-01-06 20:40 Quote from: DiCri on January 03, 2017, 06:21:28 pmCan i use SDL2 for this graphics contest? You can use SDL2. You can port your C++ game to Pascal (convert the code using a converter or by hand). But you can't use C++ because this contest is about pascal programming. ---------------------------------------------------------------------- lainz · 2017-01-16 03:44 This is my first project for the contest: movingdots It's like rain, but contains slow and fast moving dots. Attached source code and picture. ---------------------------------------------------------------------- circular · 2017-01-16 11:35 Cool.  Ok so we would have one year to produce our masterpiece. What about finishing the context at the end of the summer as previous times ? Last time we had less time because we started the context in the summer, but if the context starts now, that's still a lot of time left. What do you think ? ---------------------------------------------------------------------- lainz · 2017-01-16 15:57 Well it's summer here That depends where it's summer. I think you say in the north hemisphere. For me it's fine, since I already have my project done. And there are three more people interested right now ñuño, handoko and dicri. Let's see if they are right and it's done. ---------------------------------------------------------------------- Handoko · 2017-01-16 17:10 I'm still looking for the idea for this contest. So please be patient. I was writing my OpenGL graphics/game engine, which I wanted to make it compilable to Android some months ago. Unfortunately I got a lot of troubles due to my lack of knowledge about OpenGL ES which has huge differences compare to the OpenGL I ever knew. Android can use OpenGL ES but not the common OpenGL. So my OpenGL graphics/game engine should not be submitted for this contest, it's not finished yet. I'm thinking to pull some parts out to be used for this contest. I have not decided, should I write a tool or animation. On the beginning, I thought to use BGRABitmap, a good project that I should support. My first attempt of the installation on my Linux computer was failed. A week ago, I managed to installed it on my desktop PC, but failed on my laptop. So, now I am still looking for the graphics library to be used. Projects submitted in previous contest were awesome. Also DiCri, now no longer a newbie. I saw his last game written in C++ + SDL recently, it's hard to believe he improved so fast. Because the participants all have great thing to show, so I should too. ---------------------------------------------------------------------- lainz · 2017-01-16 18:07 I forget, you can upload as many projects you want. Maybe you want to start with any of the projects you have in mind. ---------------------------------------------------------------------- Michl · 2017-01-16 20:49 Ah interesting, the contest is back. I missed that topic. I'll try to do something, if I find the time. I'll make a hint in the German Lazarusforum. Is the end of summer (for me, end of summer is end of august ) the new date or 31 December 2017? ---------------------------------------------------------------------- lainz · 2017-01-16 22:33 Quote from: Michl on January 16, 2017, 09:49:16 pmAh interesting, the contest is back. I missed that topic. I'll try to do something, if I find the time. I'll make a hint in the German Lazarusforum. Is the end of summer (for me, end of summer is end of august ) the new date or 31 December 2017? Thanks for posting it. Put that is not yet defined, I don't know exactly what date circular was thinking about. ---------------------------------------------------------------------- circular · 2017-01-17 12:01 Quote from: lainz on January 16, 2017, 04:57:36 pmWell it's summer here That depends where it's summer. I think you say in the north hemisphere.Indeed. How to express it, hmmm, what about ending the context at the september equinox ? ---------------------------------------------------------------------- lainz · 2017-01-17 14:18 OK let's do it. Say that it ends on 1 September and the vote is up to 21 September. ---------------------------------------------------------------------- bylaardt · 2017-01-18 04:58 So, here's my first test with bgra. Can it be a start for this contest? Title: Relogio Category: Anything you can do with graphics! Libraries:BGRABitmap Tested on linux64 and linux32. ---------------------------------------------------------------------- Handoko · 2017-01-18 06:14 The Tic-tac clock is a good start, with some improvements it can be great. It's now already configurable, you may consider to make some backgrounds and preconfigured styles, perhaps: futuristic, minimalist, classic, kid, funky. ---------------------------------------------------------------------- bylaardt · 2017-01-18 12:52 Quote from: Handoko on January 18, 2017, 07:14:14 amyou may consider to make some backgrounds and preconfigured styles, perhaps: futuristic, minimalist, classic, kid, funky. Be my guest to freely change it. ---------------------------------------------------------------------- lainz · 2017-01-18 13:05 Good job! Added to the contest repository. Tested on Windows 10 and works fine. ---------------------------------------------------------------------- Eugene Loza · 2017-01-18 13:59 Can a FOSS project ongoing for some time already participate? ---------------------------------------------------------------------- lainz · 2017-01-18 14:30 Quote from: Eugene Loza on January 18, 2017, 02:59:39 pmCan a FOSS project ongoing for some time already participate? Yes, it's ok. ---------------------------------------------------------------------- Roland57 · 2017-01-18 17:50 Quote from: bylaardt on January 18, 2017, 05:58:30 amTitle: Relogio Category: Anything you can do with graphics! Libraries:BGRABitmap Very nice clock! Tested under Windows 10.  What is the difference between "Catholic" and "Roman" styles? ---------------------------------------------------------------------- bylaardt · 2017-01-18 18:16 Traditional clocks use IIII instead of IV, Because IV is Abbreviation for latin "IVUPITER" Catholic is latin too, but IV is just 4. ---------------------------------------------------------------------- Handoko · 2017-01-27 11:14 What will happen after this contest? Will the codes still openly available for others to study? I think it will be good if we have a wiki section that contains tutorials and ready-to-run source codes for graphics and games. For this contest, I have decided to use Allegro.pas. Some years ago when I was looking for a good graphics engine, I found Allegro.pas. Unfortunately, the limited tutorials caused me not to try it. Today, I made an attempt to try it. The process didn't run too smoothly, but at least it's working now, I opened some of the examples and they run correctly. This contest to me is a learning process of using Allegro.pas. I will record my progress of writing a very simple game using Allegro and write a tutorial later, hopefully it can be useful for others. Allegro.pas and BGRABitmap are both great graphics library. I choose Allegro because its currently lack of tutorials. ---------- I'm too lazy to draw my own graphics also I'm afraid that my time is not permitted. Luckily I found a page that has a list of free resources. Here you may interested to have a look: https://love2d.org/wiki/Free_Game_Resources ---------------------------------------------------------------------- lainz · 2017-01-27 17:40 QuoteWhat will happen after this contest? Will the codes still openly available for others to study? I think it will be good if we have a wiki section that contains tutorials and ready-to-run source codes for graphics and games. Yes. You can see the first post I linked the binaries and also the source code of the previous years, is all available on GitHub. This years submissions are also on GitHub right now you can explore my source and the source of the clock of bylaardt. Maybe an unique wiki will be needed to combine all the sources and explanations on how to compile them. ---------------------------------------------------------------------- User137 · 2017-01-27 21:49 Can we also require a screenshot of all submissions? Not everyone here should be expected to compile and run them. ---------------------------------------------------------------------- lainz · 2017-01-27 21:58 Quote from: User137 on January 27, 2017, 10:49:30 pmCan we also require a screenshot of all submissions? Not everyone here should be expected to compile and run them. Better require a binary, since a screenshot doesn't show the animations. I will compile all of them at the end of the contest, previous to the voting time. Edit: BTW what is the point of not compiling the sources? For what is this contest if we not see the sources and learn something new made by others.. If a non programmer comes here well maybe that be the case but I doubt that will happen. ---------------------------------------------------------------------- User137 · 2017-01-28 04:56 There are many kinds of binaries, win, linux, each 32 and 64bit... I'm currently on win-64 compiler. Screenshot in my opinion is very important even if it contains animations. And the original author can take a snapshot with a setup that guaranteed works. ---------------------------------------------------------------------- Handoko · 2017-01-28 05:36 This contest is good to promo Lazarus/FPC/Pascal. For non-programmers and someone who want to learn programming or computer game creation, can see the potentials of Lazarus and FPC. For Pascal users and other language programmers, they can study and perhaps compare Lazarus/FPC with other languages. I searched tutorials for game programming, but almost all of them were available in C++ or other languages. We should make use of this opportunity to collect a list of Pascal graphics/game source codes and tutorials. So in my opinion: Requirement to join in this contest: - The program must be compiled using Lazarus or FPC - The program must be free - The source code must be released Additional but not required: - Screenshots - Installation/compilation instruction - Comments in the source code so other can study easily - Tutorial written in pdf, doc, odt, txt - Executable binary - Users can submit more than 1 project ---------------------------------------------------------------------- jwdietrich · 2017-01-28 07:30 Source code is mandatory, precompiled binaries (for at least one of the major platforms) and screenshots are welcome additions. ---------------------------------------------------------------------- lainz · 2017-01-28 12:16 I agree will all of your suggestions. I'm adding the screenshot of the clock 'relogio' by bylaardt that was missing. My project already had a screenshot. Well, said that I'm waiting for your projects! ---------------------------------------------------------------------- lainz · 2017-01-28 18:44 Hi again, I've added a new version of my project using BGRABitmap GL. The code is in the contest repository. Here a screenshot. I don't know how to use blur effect in BGRABitmap GL so I didn't add it. ---------------------------------------------------------------------- Handoko · 2017-01-28 18:56 Wow, glad to see we can use BGRABitmap to simulate biology lifeform. I think it would be better not to blur them. Also if you can, give them border and name it with a cool name like Staphylococcus. https://en.wikipedia.org/wiki/Staphylococcus ---------------------------------------------------------------------- lainz · 2017-01-28 19:00 Quote from: Handoko on January 28, 2017, 07:56:41 pmWow, glad to see we can use BGRABitmap to simulate biology lifeform. I think it would be better not to blur them. Also if you can, give them border and name it with a cool name like Staphylococcus. https://en.wikipedia.org/wiki/Staphylococcus Good idea, I will do. ---------------------------------------------------------------------- lainz · 2017-01-28 21:58 Here it is, now it's alive! See here, too big to attach: https://i37.servimg.com/u/f37/19/53/21/62/moving10.jpg ---------------------------------------------------------------------- Ñuño_Martínez · 2017-01-30 10:45 I'm pretty bussy now. Quote from: Handoko on January 27, 2017, 12:14:23 pm For this contest, I have decided to use Allegro.pas. Some years ago when I was looking for a good graphics engine, I found Allegro.pas. Unfortunately, the limited tutorials caused me not to try it. Today, I made an attempt to try it. The process didn't run too smoothly, but at least it's working now, I opened some of the examples and they run correctly. This contest to me is a learning process of using Allegro.pas. I will record my progress of writing a very simple game using Allegro and write a tutorial later, hopefully it can be useful for others. Allegro.pas and BGRABitmap are both great graphics library. I choose Allegro because its currently lack of tutorials. Hurray!!! ---------------------------------------------------------------------- Graeme · 2017-01-30 22:35 Quote from: lainz on January 28, 2017, 10:58:55 pmHere it is, now it's alive! See here, too big to attach: https://i37.servimg.com/u/f37/19/53/21/62/moving10.jpg I've stared at that image for 10 minutes.... contrary to the name, I didn't see anything move. ---------------------------------------------------------------------- Graeme · 2017-01-30 22:39 With my new found interest in OpenGL I've decided to enter the competition as well.    I believe I have a really nice idea for the competition (its a secret for now  ) and it should be fun to implement too. Plus others will definitely be able to learn from it. Just to confirm, the first post in this thread mentions the deadline as 1 September. Is that still correct? ---------------------------------------------------------------------- lainz · 2017-01-30 22:40 Quote from: Graeme on January 30, 2017, 11:35:21 pmQuote from: lainz on January 28, 2017, 10:58:55 pmHere it is, now it's alive! See here, too big to attach: https://i37.servimg.com/u/f37/19/53/21/62/moving10.jpg I've stared at that image for 10 minutes.... contrary to the name, I didn't see anything move.  That's what I say, I need to upload a video or the binary. Quote from: Graeme on January 30, 2017, 11:39:15 pmWith my new found interest in OpenGL I've decided to enter the competition as well.    I believe I have a really nice idea for the competition (its a secret for now  ) and it should be fun to implement too. Plus others will definitely be able to learn from it. Just to confirm, the first post in this thread mentions the deadline as 1 September. Is that still correct? Welcome! Yes it's correct that's the deadline. ---------------------------------------------------------------------- Thaddy · 2017-01-31 08:41 QuoteYes it's correct that's the deadline.Is that GMT? UTC? Or are some people more equal than others? Just to make sure I have still 8 full months and not be stricken by not meeting the dead-line by a couple of hours...As usual... ---------------------------------------------------------------------- lainz · 2017-01-31 12:06 Quote from: Thaddy on January 31, 2017, 09:41:47 amQuoteYes it's correct that's the deadline.Is that GMT? UTC? Or are some people more equal than others? Just to make sure I have still 8 full months and not be stricken by not meeting the dead-line by a couple of hours...As usual... You can choose your timezone, the one fit your needs. If you participate even we have an special offer that you can submit it even the September 2. Special offer! ---------------------------------------------------------------------- Handoko · 2017-02-01 06:48 Never thought using Allegro.pas is so easy. Here is the sneak peek of what I'm currently doing: https://postimg.org/image/80qim95ml/ ---------------------------------------------------------------------- lainz · 2017-02-01 15:26 Quote from: Handoko on February 01, 2017, 07:48:58 amNever thought using Allegro.pas is so easy. Here is the sneak peek of what I'm currently doing: https://postimg.org/image/80qim95ml/ Which tool you used to make the gif? I need to do something like that for an opengl window. ---------------------------------------------------------------------- Handoko · 2017-02-01 15:37 It is hard to find a good screencast tool for Linux. Luckily I found Vokoscreen. It's simple but have all the things for basic usage. Also it doesn't need to install, just run the binary file. http://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html ---------------------------------------------------------------------- Graeme · 2017-02-01 15:37 @Lainz:  I use a small Windows application called LICEcap v1.26. It is extremely simple (one executable). It works perfectly even under FreeBSD with WINE. LICEcap also has a few nice features.   - optional seconds counter in the corner of the frame   - auto stop record after x amount of time   - user defined recording window size   - what framerate you want to record at   - stores directly to a GIF (no post processing required)   - visually display mouse clicks   - auto-repeat the GIF or not. Oh, and its FREE! ---------------------------------------------------------------------- lainz · 2017-02-01 16:20 Thanks! Here is the movingdots https://postimg.org/image/bwvur1hx9/ Here is the movingdots-gl https://postimg.org/image/otvnj6rcf/ ---------------------------------------------------------------------- User137 · 2017-02-06 15:53 I'm also working on something    It's going to ruin my night sleep if i can't get it to stop skipping tiles https://gyazo.com/cbcfd68724426fcc83905b1df26c55fd  But the work in progress animation is much cooler looking than a sudoku that just finishes in a flash. I used to have a sudoku solver from before but i'm generalizing it a little bit and almost rewrote the whole thing. In the end one could just include the unit in game and have sudoku game visualized and playable in any shape he wants. Trying to make it easy to use. ---------------------------------------------------------------------- Handoko · 2017-02-06 16:03 It looks cool! ---------------------------------------------------------------------- lainz · 2017-02-06 16:29 Wow it's really good. ---------------------------------------------------------------------- Lulu · 2017-02-06 16:54 Hello all ! Does our project must be cross platform to participate ? ---------------------------------------------------------------------- Handoko · 2017-02-06 17:06 Writing a cross platform project is more difficult, so the answer is: No, it doesn't have to be cross platform. ---------------------------------------------------------------------- lainz · 2017-02-06 22:25 If it's cross platform has the advantage of more people can vote your project if they can test it in their systems. If is not cross platform there's no problem at all. ---------------------------------------------------------------------- Ñuño_Martínez · 2017-02-14 19:11 I'm finishing my very own game engine.  I did it because I need an old-school game engine (not just big pixels but also a sound generator, old style physics, etc.).  It includes an old-school map editor.  Here you have a screen shot: https://pbs.twimg.com/media/C3QTBlGXAAIF_eD.jpg Don't know if such stuff would fit in this kind of contest.  Any suggestion? ---------------------------------------------------------------------- Handoko · 2017-02-14 19:16 Old-school games always full of nostalgic.  Does it support 32-bit color images? Or just 256 colors limited? ---------------------------------------------------------------------- circular · 2017-02-14 20:32 Hello Nuno! You're engine is pretty much graphical so that's fine. In my view, just an editor would not exactly fit the contest, however a little game (even if there is just one level) or a demo using your engine would be great. It can also be a way to show its power so that people would be interested to try it as well. ---------------------------------------------------------------------- Ñuño_Martínez · 2017-02-15 12:56 Ok.  I'll work on a little game. Quote from: Handoko on February 14, 2017, 08:16:08 pmOld-school games always full of nostalgic.  Does it support 32-bit color images? Or just 256 colors limited? Up to 32-bit color.  Last Allegro version doesn't support 256 color bitmaps natively, but there's a trick using shaders that allows 8bit color bitmaps.  Right now I have no idea about shaders but I should learn to add palette effects to the engine (i.e. animated water and fire) and simulated CRT output (scanlines and such). ---------------------------------------------------------------------- Graeme · 2017-02-15 13:48 Quote from: Handoko on February 14, 2017, 08:16:08 pmOld-school games always full of nostalgic.  Fully agree - I love them! With newer "graphics intensive" games, they just detract from the actual game-play I think. But maybe that's just me. ---------------------------------------------------------------------- lainz · 2017-02-15 22:10 There are a lot of this kind of games on Itch.io, Indie DB, Game Jolt... even in the Android market. I like that kind of games, I grown playing them ---------------------------------------------------------------------- Lulu · 2017-03-04 20:51 Hello, I'm very interested to participate in this graphics context ! Here a screenshot of my educative game, where player, with his car, must recover number corresponding to the selected multiplication table. Car can jump, left, right, accelerate and break. It use TOpenGLControl to use opengl, BGRABitmap by Circular for image file manipulation, text creation and other good stuff, the great ZENGL particles engine by Andrey Kemka adapted to my framework, OpenAL to play music and sound ( only .wav files) and my own tile engine with its (very simple) tool 'Tile Map Editor' to edit game's tiled map. ---------------------------------------------------------------------- circular · 2017-03-05 08:15 Lulu, this games looks fun ---------------------------------------------------------------------- lainz · 2017-03-05 19:25 Thanks for your interest in this contest. Remember if you want to be in to release here the source of the game, doesn't need to be today but until the end date that's defined in the first post. ---------------------------------------------------------------------- Lulu · 2017-03-05 21:54 Ok Lainz. The game is not finished yet, I still have to implement several stages to make it more attractive ---------------------------------------------------------------------- lainz · 2017-03-11 14:02 6 months left, hopefully as J-G said to me maybe in August this gets filled with a lot of entries ---------------------------------------------------------------------- lainz · 2017-04-18 23:47 We're almost half the way to the end of the contest, anyone interested? I don't want to win this year by default ---------------------------------------------------------------------- Ñuño_Martínez · 2017-04-19 08:00 I'm (re)planning the Allegro.pas demonstration game, which should be also the basis for the Allegro.pas tutorial. It will take some time because I have few free time but I'll try to finish it in time. I'll try to add some particle effects and eye candy too. ---------------------------------------------------------------------- lainz · 2017-04-19 17:41 That's great ---------------------------------------------------------------------- bylaardt · 2017-06-05 17:21 Game category, pre-compiled for linux_x64 and win. https://github.com/bylaardt/duplo6 ---------------------------------------------------------------------- Thaddy · 2017-06-05 17:37 Probably off-topic, but I have a contender for 2018: https://prezi.com/cs8ruhsfg41v/the-mathematics-of-astrology/ This is all because a bug report got solved and I pointed out to Bart what the implications were if not solved: the handling of Julian Dates which you need to solve this... I hope Bart wins... (kidding), but serious: I promise and will provide a prize: A Raspberry Pi 3 (with powersupply etc and newly ordered) or higher .... Rules are: - Provide a dynamic representation of the complete maths presented. - Bonus points for the mentioned but not fully mathematically presented parts... - flair - coding style.... (otherwise you get a Raspberry Pi one, second hand.... I can't miss it yet..) ---------------------------------------------------------------------- lainz · 2017-06-05 20:22 Quote from: bylaardt on June 05, 2017, 07:21:31 pmGame category, pre- compiled for linux_x64 and win. https://github.com/bylaardt/duplo6 Sure it wins, you have my vote. I played a variant of this game yesterday with real pieces. ---------------------------------------------------------------------- bylaardt · 2017-06-05 20:58 Quote from: lainz on June 05, 2017, 10:22:23 pmSure it wins, you have my vote. I played a variant of this game yesterday with real pieces. Thanks!  Better things are coming soon. ---------------------------------------------------------------------- RAW · 2017-06-05 22:21 This is unbeatable! I love it.. play it every night... ---------------------------------------------------------------------- bylaardt · 2017-06-05 23:04 My forgotten screenshot, sorry! ---------------------------------------------------------------------- lainz · 2017-06-05 23:48 Quote from: RAW on June 06, 2017, 12:21:19 amThis is unbeatable! I love it.. play it every night... I think everyone programmed that game some time.  Quote from: bylaardt on June 06, 2017, 01:04:50 amMy forgotten screenshot, sorry! Now than I see, I'm missing the colors in the numbers. Also when I launch the game I can't select the combobox. I'm running Linux 64, downloaded the whole repository. ---------------------------------------------------------------------- Thaddy · 2017-06-06 06:49 Quote from: lainz on June 06, 2017, 01:48:59 amI think everyone programmed that game some time.  Yup. me too... I gave up when some guy wrote the whole game (80*25 ANSI character graphics) in 256 bytes! in 1985/1986... for an assembly language contest. Using all kind of weird tricks like indexing asm opcodes (to character rom) and self modification.. Does someone still have that 8086 code? I miss it...It was brilliant, utterly brilliant... [edit] The commodore 64 one was not far off in 6510 assembly at 384 bytes. I did mine for Commodore 64 in just under 1K... (looser!) but I tried. So basically now you know that, on average, I am 4 times as bad as a brilliant one... ---------------------------------------------------------------------- lainz · 2017-06-06 13:41 Quote from: Thaddy on June 06, 2017, 08:49:40 amQuote from: lainz on June 06, 2017, 01:48:59 amI think everyone programmed that game some time.  Yup. me too... I gave up when some guy wrote the whole game (80*25 ANSI character graphics) in 256 bytes! in 1985/1986... for an assembly language contest. Using all kind of weird tricks like indexing asm opcodes (to character rom) and self modification.. Does someone still have that 8086 code? I miss it...It was brilliant, utterly brilliant... [edit] The commodore 64 one was not far off in 6510 assembly at 384 bytes. I did mine for Commodore 64 in just under 1K... (looser!) but I tried. So basically now you know that, on average, I am 4 times as bad as a brilliant one... Yes there are also binary size contest that the .exe file should not be larger than "x" kb. I don't have that kind of code, the older code I have is from 2007 ---------------------------------------------------------------------- bylaardt · 2017-06-06 17:52 Quote from: lainz on June 06, 2017, 01:48:59 amNow than I see, I'm missing the colors in the numbers. Also when I launch the game I can't select the combobox. I'm running Linux 64, downloaded the whole repository. Fixed. Tanks for the feedback. use popup menu to change sound, deck texture or tiles colors. Changes committed on https://github.com/bylaardt/duplo6 ---------------------------------------------------------------------- RAW · 2017-06-06 17:58 QuoteMy forgotten screenshot... Nice! I like games with homogeneous appearance and nice colors that don't punch you visually in the face. ---------------------------------------------------------------------- turrican · 2017-06-09 12:32 Hey people! I am interested on the contest! Can I participate? ---------------------------------------------------------------------- Thaddy · 2017-06-09 12:38 Quote from: turrican on June 09, 2017, 02:32:46 pmHey people! I am interested on the contest! Can I participate? Yup! ---------------------------------------------------------------------- turrican · 2017-06-09 12:44 Cool, I will participate with a cross-platform graphic demostration using ZenGL framework based on OpenGL and DirectX. ---------------------------------------------------------------------- Thaddy · 2017-06-09 12:45 Quote from: lainz on June 06, 2017, 03:41:48 pmQuote from: Thaddy on June 06, 2017, 08:49:40 amQuote from: lainz on June 06, 2017, 01:48:59 amI think everyone programmed that game some time.  Yup. me too... I gave up when some guy wrote the whole game (80*25 ANSI character graphics) in 256 bytes! in 1985/1986... for an assembly language contest. Using all kind of weird tricks like indexing asm opcodes (to character rom) and self modification.. Does someone still have that 8086 code? I miss it...It was brilliant, utterly brilliant... [edit] The commodore 64 one was not far off in 6510 assembly at 384 bytes. I did mine for Commodore 64 in just under 1K... (looser!) but I tried. So basically now you know that, on average, I am 4 times as bad as a brilliant one... Yes there are also binary size contest that the .exe file should not be larger than "x" kb. I don't have that kind of code, the older code I have is from 2007  It's bytes, not kilo bytes... It is a lost art.... ---------------------------------------------------------------------- turrican · 2017-06-09 12:47 There will binary size limitation? ---------------------------------------------------------------------- bylaardt · 2017-06-09 13:38 No limitation of this kind of art. PS: For the Motivational Phrases Contenst my vote is for Thaddy when {$DEFINE ThaddyGrumpyModeOn} Sometimes everyone needs a little inspiration ---------------------------------------------------------------------- J-G · 2017-06-14 19:47 I have an entry ready to send but don't know precisely what is required. I assume the .LPI, .LPR, .LFM and .PAS files and maybe the .ICO but suspect that .RES and .LPS might also be needed along with the Images used. Nor do I know how the files should be sent and to whom ! ... but I'm sure Lainz will enlighten me ---------------------------------------------------------------------- lainz · 2017-06-14 21:32 Quote from: J-G on June 14, 2017, 09:47:24 pmI have an entry ready to send but don't know precisely what is required. I assume the .LPI, .LPR, .LFM and .PAS files and maybe the .ICO but suspect that .RES and .LPS might also be needed along with the Images used. Nor do I know how the files should be sent and to whom ! ... but I'm sure Lainz will enlighten me Hi J-G, how you are? You can upload it as a zip file in your website and put a link here, basically the people needs to download and test it. If you're in doubt include everything, except the .bak files or backup folder (that depends on the settings, where these files are generated) and also don't include the lib folder. Executables are welcome also, but not required. ---------------------------------------------------------------------- J-G · 2017-06-15 02:17 Quote from: lainz on June 14, 2017, 11:32:22 pmHi J-G, how are you?In good order thanks - had a fantastic concert last Saturday and still buzzing from it Quote from: lainzYou can upload it as a zip file in your website and put a link here, basically the people needs to download and test it. If you're in doubt include everything, except the .bak files or backup folder (that depends on the settings, where these files are generated) and also don't include the lib folder. Executables are welcome also, but not required. Since posting, I've seen fit to do some small 'tweeks' - totally cosmetic but I know that they improve the program  -  so I'll upload to my site tomorrow sometime - just need to sleep on the adjustments to determine that they really are necessary and they are done in the most efficient way (they are to do with enabling or prohibiting mouse- cursor changes to indicate available events). ---------------------------------------------------------------------- J-G · 2017-06-15 11:07 My entry for the 'Animation' section is now available for you to download from www.crescentcomputing.co.uk/lainz. There is one .ZIP file - BGRA Graphics.ZIP - which contains all the Laz generated files plus Screen-shots, .PNG Images, The CorelDRAW! file and a 32bit executable. As there are no text clues such as TButtons cluttering the main image, I've added a comment at the top of the .PAS file to explain the thinking and controls. I hope I've remembered everything - you'll no doubt let me know otherwise ---------------------------------------------------------------------- turrican · 2017-06-15 11:14 Quote from: J-G on June 15, 2017, 01:07:50 pmMy entry for the 'Animation' section is now available for you to download from www.crescentcomputing.co.uk/lainz. There is one .ZIP file - BGRA Graphics.ZIP - which contains all the Laz generated files plus Screen-shots, .PNG Images, The CorelDRAW! file and a 32bit executable. As there are no text clues such as TButtons cluttering the main image, I've added a comment at the top of the .PAS file to explain the thinking and controls. I hope I've remembered everything - you'll no doubt let me know otherwise Nice! It's show high CPU usage on a I5-4590 @ 3'3 GHZ. ---------------------------------------------------------------------- lainz · 2017-06-16 12:34 Thanks for the correction Quote from: J-G on June 15, 2017, 01:07:50 pmMy entry for the 'Animation' section is now available for you to download from www.crescentcomputing.co.uk/lainz. There is one .ZIP file - BGRA Graphics.ZIP - which contains all the Laz generated files plus Screen-shots, .PNG Images, The CorelDRAW! file and a 32bit executable. As there are no text clues such as TButtons cluttering the main image, I've added a comment at the top of the .PAS file to explain the thinking and controls. I hope I've remembered everything - you'll no doubt let me know otherwise Amazing as always J-G! I've run the .exe under Ubuntu Linux with Wine, despite it shows a shadow around the clock (it's only on Ubuntu) it works very well. ---------------------------------------------------------------------- J-G · 2017-06-16 12:59 Quote from: lainz on June 16, 2017, 02:34:49 pmThanks for the correction Thought you might like that   You know I hold the opinion that if you don't correct, you accept - and that helps no-one. Quote from: lainzAmazing as always J-G! I'm not sure I would apply that epithet but thanks. Quote from: lainzI've run the .exe under Ubuntu Linux with Wine, despite it shows a shadow around the clock (it's only on Ubuntu) it works very well.I got a little excited at first read  -  I missed the mention of Wine   -  cross-compiling to native Linux and Android are aspirations. ---------------------------------------------------------------------- lainz · 2017-06-16 13:28 QuoteI got a little excited at first read  -  I missed the mention of Wine   -  cross-compiling to native Linux and Android are aspirations.Yes, I think is not possible because your application uses Windows dll's. You must find a cross-platform way doing the same (transparency). ---------------------------------------------------------------------- circular · 2017-06-18 17:22 Lots of interesting projects. I realise I am not keeping up with the contest. How much time left? ---------------------------------------------------------------------- fred · 2017-06-18 17:38 From page 1: "So the deadline this year is until 1 September 2017." From Calendar Magic: *** Days between Dates - Jun 18, 2017 and Sep 1, 2017 *** Difference = 75 days = 2 months 14 days ---------------------------------------------------------------------- Handoko · 2017-06-18 18:42 I made glSlideshow - a simple slideshow using Lazarus TOpenGLControl, to show how to use OpenGL to do animations. My knowledge about OpenGL is very limited, so far the transition effects supported are: - Slide In - Fade To Background - Ribbon Limitations: - No support for resizing and full screen preview - No sound effect - Max. 5 slides - Cannot save project - Cannot remove slide - Only jpeg image is supported Hope this code can be useful for someone who wants to learn OpenGL. --- edit --- I forgot to mentioned, to be able to compile this code, you need to enable LazOpenGLContext on your Lazarus: Lazarus main menu > Package > Install/Uninstall Packages > on right panel, select: LazOpenGLContext 0.0.1 > click: Install selection > Save and rebuild IDE. I built this program using Lazarus 1.6.4 on Linux PC. For Linux users, you need to instal libgl1-mesa-dev library. The code didn't use any OS specific functions, I'm not sure but I think it should be able to compile on Windows machines too. ---------------------------------------------------------------------- lainz · 2017-06-19 19:09 Hi Handoko, I'm a new Linux user for a month or less, I can't rebuild lazarus when I try to install OpenGL package. Any ideas? I'm on Ubuntu. ---------------------------------------------------------------------- Eugene Loza · 2017-06-19 19:16 Quote from: lainz on June 19, 2017, 09:09:35 pmHi Handoko, I'm a new Linux user for a month or less, I can't rebuild lazarus when I try to install OpenGL package. Any ideas? I'm on Ubuntu. What is the problem you're experiencing? Is this "Error while linking"? If yes, get Lazarus 1.8.0RC2, debian packages are fixed there. ---------------------------------------------------------------------- lainz · 2017-06-19 19:19 Quote from: Eugene Loza on June 19, 2017, 09:16:56 pmQuote from: lainz on June 19, 2017, 09:09:35 pmHi Handoko, I'm a new Linux user for a month or less, I can't rebuild lazarus when I try to install OpenGL package. Any ideas? I'm on Ubuntu. What is the problem you're experiencing? Is this "Error while linking"? If yes, get Lazarus 1.8.0RC2, debian packages are fixed there. Thanks I will do. Seems that also there's a library needed to be installed in the system according to this http://forum.lazarus.freepascal.org/index.php/topic,35807.msg237482.ht ml#msg237482 Done. That was the missing library. @Handoko, well done! Thanks for your demo. ---------------------------------------------------------------------- Eugene Loza · 2017-06-19 19:29 Quote from: lainz on June 19, 2017, 09:19:49 pmSeems that also there's a library needed to be installed in the system according to this http://forum.lazarus.freepascal.org/index.php/topic,35807.msg237482.ht ml#msg237482 You'll also need: libgtkglext1 libgtkglext1-dev Usually you'll also need (actually they're usually available in the OS already): libpng libpng-dev zlib1g zlib1g-dev and if you need not only OpenGl: libopenal1 libopenal-dev libvorbis libvorbis-dev libfreetype6 libfreetype6-dev and of course libgl1-mesa-dev, as Handoko mentioned. ---------------------------------------------------------------------- lainz · 2017-06-19 21:08 Thanks. Seems a list for a complete application with compressed images and audio, plus text support. For the Handoko application just using libgl1-mesa-dev was enough, also I didn't change lazarus 1.6 (I will do when needed). ---------------------------------------------------------------------- LazarDan · 2017-06-23 06:06 Hi I believe all ready late for this graphic content , but I want to ask when will be the next one. I'm graphic designer and looking for contests like this. Can you please let me know? ---------------------------------------------------------------------- Handoko · 2017-06-23 06:54 Hello LazarDan, Welcome to the forum. You still has about 2 months. If you can't finished it before the deadline, there should be similar contest again in 2018. ---------------------------------------------------------------------- lainz · 2017-06-23 19:14 Quote from: LazarDan on June 23, 2017, 08:06:45 amHi I believe all ready late for this graphic content , but I want to ask when will be the next one. I'm graphic designer and looking for contests like this. Can you please let me know? Remember that's a graphics contest with programming if you don't already know it. ---------------------------------------------------------------------- lainz · 2017-06-24 19:16 We have a bit more than 2 months to finish this contest. Currently we have 7 projects by 5 participants (2 by lainz, 2 by bylaardt, 1 by raw, 1 by j-g, 1 by handoko). Sources here: https://github.com/lazarusccr/GraphicsContest ---------------------------------------------------------------------- bylaardt · 2017-06-25 05:24 Quote from: Handoko on January 18, 2017, 07:14:14 amThe Tic-tac clock is a good start, with some improvements it can be great. It's now already configurable, you may consider to make some backgrounds and preconfigured styles, perhaps: futuristic, minimalist, classic, kid, funky. So here it goes! https://github.com/bylaardt/steampunkclock I know is a little late, sorry! Limitations: Use PNG files. If you want to use a selfmade layout, just pb_clock unit is needed: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i with TClockBuilder.Create(self) do begin  left:=10;  top:=10;  width:=100;  height:=100;  LoadFromClockFile('My_clock_file.spcf');end; ---------------------------------------------------------------------- lainz · 2017-06-26 19:48 Thanks! It's not late there's time until 1 September. That's the multi clock machine ---------------------------------------------------------------------- bylaardt · 2017-06-26 23:30 late for handoko's request  The suggestion is from january and was implemented just on the last week. ---------------------------------------------------------------------- Handoko · 2017-06-30 15:56 Time is running out. It still needs much things to added to make it complete game. ---------------------------------------------------------------------- lainz · 2017-07-01 15:00 Quote from: Handoko on June 30, 2017, 05:56:38 pmTime is running out. It still needs much things to added to make it complete game. Looking good. ---------------------------------------------------------------------- Pascal · 2017-07-05 06:28 I dug out my old delphi presentation tool prototype and decided to port it to fpc and build a full application out of it. ---------------------------------------------------------------------- lainz · 2017-07-05 22:59 Quote from: Pascal on July 05, 2017, 08:28:35 amI dug out my old delphi presentation tool prototype and decided to port it to fpc and build a full application out of it. Looking good. If you want to participate you must share your code as all the others did. ---------------------------------------------------------------------- Pascal · 2017-07-06 03:45 Yes, of course. Is there a problem when it'swindows only? ---------------------------------------------------------------------- Handoko · 2017-07-06 04:32 No problem. Windows, Linux, Mac ... cross platform or not all are okay. ---------------------------------------------------------------------- Handoko · 2017-07-06 12:46 In the midnight of your sleep you have been attacked, your teammates died unarmed. You managed to grab your sword and saved your life. You vowed to kill 100 zombies or you will never leave. Cursed by your vow, the sky there will be forever dark. Without the bright of the sun, zombies will keep coming out. Will you able to break the curse and continue your journey back to the palace? Well, the game is almost finished. Animations, collision detections, etc are working well. But I need background music and some sound effects. Any suggestion where can I get some free audio that allow us to reuse? ---------------------------------------------------------------------- lainz · 2017-07-06 12:56 If you want to make the sound I use Linux Multimedia Studio. I'm not a sound master, but I do small loops for my games with it. Then you should manage the volume by using audacity or another tool. ---------------------------------------------------------------------- bylaardt · 2017-07-06 13:31 @pascal Write once, compile anywhere. Freepascal is more than a delphi open source version. Note this was a delphi conversion, not a fpc/lazarus original project. remove "windows" from "uses", use the right units and be happy with a cross-compile code. Re-do with the WOCA concept. It's time to leave these "window" limits. I haven't got a Windows license.  If I can't see your project running then I can't evaluate it.  BTW, sounds like a good job to me. ---------------------------------------------------------------------- Pascal · 2017-07-06 13:39 Quote from: bylaardt on July 06, 2017, 03:31:25 pm@pascal Write once, compile anywhere. Freepascal is more than a delphi open source version. Note this was a delphi conversion, not a fpc/lazarus original project. remove "windows" from "uses", use the right units and be happy with a cross-compile code. Re-do with the WOCA concept. It's time to leave these "window" limits. I haven't got a Windows license.  If I can't see your project running then I can't evaluate it.  BTW, sounds like a good job to me. Yes, i am on the way to it  Just build a patch to make TOpenGLControl renderable by a thread https://bugs.freepascal.org/view.php?id=32116. Next is: High performance counter and Texture loading ---------------------------------------------------------------------- lainz · 2017-07-06 13:41 Quote from: bylaardt on July 06, 2017, 03:31:25 pm@pascal Write once, compile anywhere. Freepascal is more than a delphi open source version. Note this was a delphi conversion, not a fpc/lazarus original project. remove "windows" from "uses", use the right units and be happy with a cross-compile code. Re-do with the WOCA concept. It's time to leave these "window" limits. I haven't got a Windows license.  If I can't see your project running then I can't evaluate it.  BTW, sounds like a good job to me. Just try wine, all OpenGL stuff like Unity Games compiled for Windows working really well, also DirectX 9. ---------------------------------------------------------------------- bylaardt · 2017-07-06 15:10 It's ok. It is the choice of a programmer. My opinion and yours may be divergent, but I will respect the effort to find some good reasons to support their or my when pertinent. What would be of the evolution of science without the dialectic? about wine: So many security issues than i realy prefeer removing windows unit to adapt. wine sounds like a WOP (Workaround Oriented Programming) tool. Can i recommend install wine? when i have a .exe and i cannot adapt/recompile it. just in this case! ---------------------------------------------------------------------- Ñuño_Martínez · 2017-07-06 19:27 Quote from: Handoko on July 06, 2017, 02:46:58 pmIn the midnight of your sleep you have been attacked, your teammates died unarmed. You managed to grab your sword and saved your life. You vowed to kill 100 zombies or you will never leave. Cursed by your vow, the sky there will be forever dark. Without the bright of the sun, zombies will keep coming out. Will you able to break the curse and continue your journey back to the palace? It looks gorgueous.  I want to see it running. And the sources too. Quote from: Handoko on July 06, 2017, 02:46:58 pmWell, the game is almost finished. Animations, collision detections, etc are working well. But I need background music and some sound effects. Any suggestion where can I get some free audio that allow us to reuse? Didn't you know about http://opengameart.org/ ? ---------------------------------------------------------------------- Handoko · 2017-07-09 18:32 Hello all. I need helps. The Furious Paladin is basically finished. But it failed to run on my Win32 using Wine. My tests on Linux, everything seemed to work correctly. Can you please download and test the binaries (Win32 and Linux64)? And let me know if there is something not working correctly. Criticism and suggestions are welcome. I will provide the source code and tutorials, but not now. I need to make the code more readable before I publicize it. The binaries, source code and tutorial later will be able to download from Allegro.pas website. But for now, you can grab the demo from: http://graphicslearning.com/furious-paladin-tutorials/ To download, you need password: lazarus. ---edit--- This is my first time using Allegro.pas, I'm still not very sure how to correctly deploy the binaries. If you are asked to provide the allegro library, I you can try to download it from: http://liballeg.org/download.html ---------------------------------------------------------------------- lainz · 2017-07-09 23:08 @handoko, the game runs too fast under Windows. I can't play I get killed instantly. ---------------------------------------------------------------------- Handoko · 2017-07-10 02:02 Thanks for informing me, I will check it. For testing purpose, I have added some cheat codes: /debug            -> show bounding box of the collision test /fastrecover    -> fast health recovery /stoneskin       -> less damage from enemies To use that cheat codes, put it as the command parameters. ---------------------------------------------------------------------- molly · 2017-07-10 02:22 @Handoko Not knowing about allegro or your ocde, i've come across this example, which should be able to time your update frequency. ---------------------------------------------------------------------- Handoko · 2017-07-10 02:46 Okay, thank. I will add it to the code. ---------------------------------------------------------------------- Handoko · 2017-07-10 09:23 I have added the timer, it now should run at the same speed on different machines. On my Linux computer, it seems to run at fixed 60 fps by default even I don't use timer and it won't able to go above it. If I set it 50 fps, I can see it runs slower, but if I set 70 or even 250, the results are the same as 60 fps. On my system, I have liballegro5.2 and liballegro5-dev installed. That's why I have no problem compiling and running it. Not sure it is static or dynamic linked to the libraries. I found no explanation about it on Allegro.pas website. Also I don't know how to cross compile using Linux64 to produce Win32 binaries? Googling the web, the results are the complicated toolchains that I can't understand. Please share some info how to build Allegro.pas games using Linux64 to produce Win32 binaries. Also, please test my demo, is it working properly or not? http://graphicslearning.com/furious-paladin-tutorials/ ---------------------------------------------------------------------- molly · 2017-07-10 09:33 Quote from: Handoko on July 10, 2017, 11:23:19 amI have added the timer, it now should run at the same speed on different machines. On my Linux computer, it seems to run at fixed 60 fps by default even I don't use timer and it won't able to go above it. If I set it 50 fps, I can see it runs slower, but if I set 70 or even 250, the results are the same as 60 fps. the only reason i can think of atm is vsync/screen-mode refresh rate . Do you happen to use vsync inside your code somewhere ? Also note that other routines could wait for vsync, flip_display() for instance (docs): Quoteal_flip_display void al_flip_display(void) Source Code Copies or updates the front and back buffers so that what has been drawn previously on the currently selected display becomes visible on screen. Pointers to the special back buffer bitmap remain valid and retain their semantics as the back buffer, although the contents may have changed. Several display options change how this function behaves: With ALLEGRO_SINGLE_BUFFER, no flipping is done. You still have to call this function to display graphics, depending on how the used graphics system works.The ALLEGRO_SWAP_METHOD option may have additional information about what kind of operation is used internally to flip the front and back buffers. If ALLEGRO_VSYNC is 1, this function will force waiting for vsync. If ALLEGRO_VSYNC is 2, this function will not wait for vsync. With many drivers the vsync behavior is controlled by the user and not the application, and ALLEGRO_VSYNC will not be set; in this case al_flip_display will wait for vsync depending on the settings set in the system's graphics preferences. See also: al_set_new_display_flags, al_set_new_display_option ---------------------------------------------------------------------- Handoko · 2017-07-10 09:44 No, my code does not contain anything related with vsync. This is the code for drawing: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure ProcessDrawing;var  C: Real;  i: Integer;begin   case AppState of     Intro1:      begin        al_draw_bitmap(ImgIntroPage1, 0, 0, 0);      with Player do          al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);      end;     Intro2:      begin        al_draw_bitmap(ImgIntroPage2, 0, 0, 0);        with Player do          al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);      end;     Playing, Paused, Lose, Win:      begin        al_clear_to_color(al_map_rgb(0, 0, 10));        // Draw health bar      al_draw_filled_rectangle(0, 0, PlayerHealth, 20, al_map_rgb(0, 200, 0));        C := (MaxPlayerHealth-PlayerHealth)/MaxPlayerHealth;      al_draw_filled_rectangle(0, 0, PlayerHealth, 20, al_map_rgba_f(C, 0, 0, C));        // Show killed information        al_draw_text(SystemFont, al_map_rgb(255, 255, 255), 20, 4,ALLEGRO_ALIGN_LEFT,          'Killed: '+IntToStr(EnemyKilled));      // Brighten the sky        al_draw_bitmap(ImgBackground1, 0, 20, 0);        C := EnemyKilled/100;        al_draw_tinted_bitmap(ImgBackground2, al_map_rgba_f(C, C, C, C), 0, 20, 0);        // Draw player and enemies        with Player do begin          al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);          if DebugMode then begin            al_draw_rectangle(PosX+35, 230, PosX+60, 280, al_map_rgb(0, 255, 0), 1);            if (CurrentActivity = AttackL) then              al_draw_rectangle(PosX+15, 230, PosX+40, 280, al_map_rgb(255, 0, 0), 1);            if (CurrentActivity = AttackR) then              al_draw_rectangle(PosX+55, 230, PosX+80, 280, al_map_rgb(255, 0, 0), 1);          end;        end;        for i := 0 to (Enemies.Count-1) do          with TActor(Enemies[i]^) do begin            al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);          if DebugMode then begin              if (CurrentActivity = WalkL) or (CurrentActivity = AttackL) then                al_draw_rectangle(PosX+30, 230, PosX+65, 280, al_map_rgb(0, 0, 255), 1);              if (CurrentActivity = WalkR) or (CurrentActivity = AttackR) then                al_draw_rectangle(PosX+33, 230, PosX+68, 280, al_map_rgb(0, 0, 255), 1);              if (CurrentActivity = AttackL) then                al_draw_rectangle(PosX+22, 230, PosX+47, 280, al_map_rgb(255, 0, 0), 1);              if (CurrentActivity = AttackR)  then                al_draw_rectangle(PosX+50, 230, PosX+75, 280, al_map_rgb(255, 0, 0), 1);            end;          end;        // Show cheat info        if CheatFastRecover then          al_draw_text(SystemFont, al_map_rgb(255, 0, 0), 20, 100,ALLEGRO_ALIGN_LEFT,            'FastRecover');        if CheatStoneSkin then          al_draw_text(SystemFont, al_map_rgb(255, 0, 0), 20, 120,ALLEGRO_ALIGN_LEFT,            'StoneSkin');        // AppState related        case AppState of          Paused:            al_draw_bitmap(ImgPaused, 140, 75, 0);          Lose:            al_draw_text(SystemFont, al_map_rgb(255, 255, 255), 250, 100,          ALLEGRO_ALIGN_CENTER, 'YOU FAILED!');          Win:            al_draw_bitmap(ImgWin, 140, 75, 0);        end;      end;   end;   al_flip_display; end; And this is the main loop: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var  Event: ALLEGRO_EVENT;begin  ProcessInit;  Start(Intro1);  while (GameIsRunning) do begin    al_wait_for_event(EventQueue, Event);    ProcessUserInput;    ProcessUpdate;    ProcessDrawing;  end;  ProcessShutdown;end. ---------------------------------------------------------------------- molly · 2017-07-10 09:57 Thanks for the snippets, they help. Quote from: Handoko on July 10, 2017, 11:44:40 amNo, my code does not contain anything related with vsync. Ah, hidden options  I added to my previous post but you was quick with your response  See set_new_display_option: Quoteal_set_new_display_option void al_set_new_display_option(int option, int value, int importance) snip ALLEGRO_VSYNC Set to 1 to tell the driver to wait for vsync in al_flip_display, or to 2 to force vsync off. The default of 0 means that Allegro does not try to modify the vsync behavior so it may be on or off. Note that even in the case of 1 or 2 it is possible to override the vsync behavior in the graphics driver so you should not rely on it. Maybe you can toy with that option a little ? ---------------------------------------------------------------------- Ñuño_Martínez · 2017-07-10 12:58 Quote from: Handoko on July 10, 2017, 11:44:40 amNo, my code does not contain anything related with vsync. This is the code for drawing: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure ProcessDrawing;var  C: Real;  i: Integer;begin   case AppState of     Intro1:      begin        al_draw_bitmap(ImgIntroPage1, 0, 0, 0);      with Player do          al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);      end;     Intro2:      begin        al_draw_bitmap(ImgIntroPage2, 0, 0, 0);        with Player do          al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);      end;     Playing, Paused, Lose, Win:      begin        al_clear_to_color(al_map_rgb(0, 0, 10));        // Draw health bar      al_draw_filled_rectangle(0, 0, PlayerHealth, 20, al_map_rgb(0, 200, 0));        C := (MaxPlayerHealth-PlayerHealth)/MaxPlayerHealth;      al_draw_filled_rectangle(0, 0, PlayerHealth, 20, al_map_rgba_f(C, 0, 0, C));        // Show killed information        al_draw_text(SystemFont, al_map_rgb(255, 255, 255), 20, 4,ALLEGRO_ALIGN_LEFT,          'Killed: '+IntToStr(EnemyKilled));      // Brighten the sky        al_draw_bitmap(ImgBackground1, 0, 20, 0);        C := EnemyKilled/100;        al_draw_tinted_bitmap(ImgBackground2, al_map_rgba_f(C, C, C, C), 0, 20, 0);        // Draw player and enemies        with Player do begin          al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);          if DebugMode then begin            al_draw_rectangle(PosX+35, 230, PosX+60, 280, al_map_rgb(0, 255, 0), 1);            if (CurrentActivity = AttackL) then              al_draw_rectangle(PosX+15, 230, PosX+40, 280, al_map_rgb(255, 0, 0), 1);            if (CurrentActivity = AttackR) then              al_draw_rectangle(PosX+55, 230, PosX+80, 280, al_map_rgb(255, 0, 0), 1);          end;        end;        for i := 0 to (Enemies.Count-1) do          with TActor(Enemies[i]^) do begin            al_draw_bitmap(AnimImage^.Images[AnimProgress], PosX, PosY, 0);          if DebugMode then begin              if (CurrentActivity = WalkL) or (CurrentActivity = AttackL) then                al_draw_rectangle(PosX+30, 230, PosX+65, 280, al_map_rgb(0, 0, 255), 1);              if (CurrentActivity = WalkR) or (CurrentActivity = AttackR) then                al_draw_rectangle(PosX+33, 230, PosX+68, 280, al_map_rgb(0, 0, 255), 1);              if (CurrentActivity = AttackL) then                al_draw_rectangle(PosX+22, 230, PosX+47, 280, al_map_rgb(255, 0, 0), 1);              if (CurrentActivity = AttackR)  then                al_draw_rectangle(PosX+50, 230, PosX+75, 280, al_map_rgb(255, 0, 0), 1);            end;          end;        // Show cheat info        if CheatFastRecover then          al_draw_text(SystemFont, al_map_rgb(255, 0, 0), 20, 100,ALLEGRO_ALIGN_LEFT,            'FastRecover');        if CheatStoneSkin then          al_draw_text(SystemFont, al_map_rgb(255, 0, 0), 20, 120,ALLEGRO_ALIGN_LEFT,            'StoneSkin');        // AppState related        case AppState of          Paused:            al_draw_bitmap(ImgPaused, 140, 75, 0);          Lose:            al_draw_text(SystemFont, al_map_rgb(255, 255, 255), 250, 100,          ALLEGRO_ALIGN_CENTER, 'YOU FAILED!');          Win:            al_draw_bitmap(ImgWin, 140, 75, 0);        end;      end;   end;   al_flip_display; end; And this is the main loop: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var  Event: ALLEGRO_EVENT;begin  ProcessInit;  Start(Intro1);  while (GameIsRunning) do begin    al_wait_for_event(EventQueue, Event);    ProcessUserInput;    ProcessUpdate;    ProcessDrawing;  end;  ProcessShutdown;end. I'm really curious about your sources.  Your game loop looks as the loops used in the old times, when the target system had a fixed speed (i.e: game consoles, z80 based computers, ect.).  Nowadays a single target (i.e. PC) may have different speed (not only CPU but also memory, disk and graphics hardware, that affects the final speed).  Of course, it is possible to control speed using different ways, and I'm curious to know which one you've used as I'm sure it's very different to the one I'm using in my engine. ---------------------------------------------------------------------- minesadorada · 2017-07-10 13:07 Quote from: Handoko on July 09, 2017, 08:32:02 pmCan you please download and test the binaries (Win32 and Linux64)? And let me know if there is something not working correctly. Criticism and suggestions are welcome. When running the EXE on Win 10 x64, it asks for various DLLs then quits. allegro_image-5.2.dll allegro_ttf-5.2.dll allegro_font-5.2.dll allegro-5.2.dll HTH ---------------------------------------------------------------------- Scoops · 2017-07-10 14:52 @minesadorada I also got these missing dll errors I downloaded from https://github.com/liballeg/allegro5/releases Version 5.2 im on Windows XP 32bit sp3 and "allegro-mingw- gcc5.3.0-x86-5.2.0.zip" contained all the dlls needed to run the Game. if you are 64bit try "allegro-mingw-gcc5.3.0-x64-5.2.0.zip" ? Hope this helps ---------------------------------------------------------------------- lainz · 2017-07-10 15:21 For Ubuntu I downloaded the PPA containing 5.2 and the game runs fine. For Wine I downloaded the 5.2.0 dll and put into the exe folder, then run with Wine and works fine also. If you download a newer version like 5.2.x there are more dependencies that doesn't come with Windows, something related with C++. These DLL doesn't come with the Allegro download, must be downloaded in another place. ---------------------------------------------------------------------- minesadorada · 2017-07-10 16:28 Quote from: Scoops on July 10, 2017, 04:52:56 pm@minesadorada I also got these missing dll errors I downloaded from https://github.com/liballeg/allegro5/releases Version 5.2 im on Windows XP 32bit sp3 and "allegro-mingw- gcc5.3.0-x86-5.2.0.zip" contained all the dlls needed to run the Game. if you are 64bit try "allegro-mingw-gcc5.3.0-x64-5.2.0.zip" ? Hope this helps For Win 10 x64 you need to download: allegro-mingw-gcc5.3.0-x86-5.2.0.zip and extract into the .exe folder: allegro_acodec-5.2.dll allegro_audio-5.2.dll allegro_font-5.2.dll allegro_image-5.2.dll allegro_primitives-5.2.dll allegro_ttf-5.2.dll allegro-5.2.dll The game opens OK, but with a DOS console in the background.  The game window is tiny (320x240?) on a 1920 screen, so the instruction text is practically unreadable. I was expecting to move via left-arrow-right/arrow but no luck. The only way to exit the game is by closing the DOS console.  There is no File/close menu in the game window. ALT+F4 didn't work. So: to fix things for Windows.. 1. Make an InnoSetup that includes the dll files 2. Make the initial screen 640 x 480 at least, with an option to enlarge 3. Include File/close in the game menu 4. Use left/right arrow keys to move - it's sort-of standard. 5. After the message "You Failed" I couldn't find an easy way to restart the game Those are my initial comments (as invited) ---------------------------------------------------------------------- Handoko · 2017-07-10 18:17 Quote from: molly on July 10, 2017, 11:57:58 amQuoteALLEGRO_VSYNC Set to 1 to tell the driver to wait for vsync in al_flip_display, or to 2 to force vsync off. The default of 0 means that Allegro does not try to modify the vsync behavior so it may be on or off. Note that even in the case of 1 or 2 it is possible to override the vsync behavior in the graphics driver so you should not rely on it. Maybe you can toy with that option a little ? The speed issue now has solved, thank you. The quote you provided explains why it runs well on my computer but too fast on others. I am busy at the moment, I will inspect it deeper later, maybe some days later. Quote from: Ñuño_Martínez on July 10, 2017, 02:58:12 pmQuote from: Handoko on July 10, 2017, 11:44:40 amAnd this is the main loop: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var  Event: ALLEGRO_EVENT;begin  ProcessInit;  Start(Intro1);  while (GameIsRunning) do begin    al_wait_for_event(EventQueue, Event);    ProcessUserInput;    ProcessUpdate;    ProcessDrawing;  end;  ProcessShutdown;end. I'm really curious about your sources.  Your game loop looks as the loops used in the old times, when the target system had a fixed speed (i.e: game consoles, z80 based computers, ect.).  Nowadays a single target (i.e. PC) may have different speed (not only CPU but also memory, disk and graphics hardware, that affects the final speed).  Of course, it is possible to control speed using different ways, and I'm curious to know which one you've used as I'm sure it's very different to the one I'm using in my engine. The code you quoted is the revised version, which should work correctly. I heard that Allegro 5 uses event concept, which I am not familiar with. I followed the sample from the wiki page, added the Allegro timer event, and the speed issue now has solved. @ Scoops, lainz, minesadorada Thank you for you helps. I found no such information on the web! This information is very valuable. @ all I am overwhelmed by 'real' job currently, I may be able to come back maybe some days later. Please report anything that seems weird. If no new bug found, I then will start to write the tutorial. Of course I know I am not an expert in game programming, the code may not conform to the standard. So will first let it checked by seniors before publicized to the public. This Furious Paladin is far from complete, but it has many interesting thing inside: - How to manage animation - Using app state (or others called it 'game state') - Using dynamic array (instead of TFPList) It uses dynamic array for storing the actor data. I set a test running dynamic array vs TFPList, the result is dynamic array runs a bit faster compare to TFPList but it runs much slower when adding/deleting items. In the game, it doesn't really delete the item, it simply mark it as 'expired', so can be reuse later. See you. ---------------------------------------------------------------------- Handoko · 2017-07-10 18:28 Quote from: minesadorada on July 10, 2017, 06:28:45 pmThe game opens OK, but with a DOS console in the background.  The game window is tiny (320x240?) on a 1920 screen, so the instruction text is practically unreadable. I was expecting to move via left-arrow-right/arrow but no luck. The only way to exit the game is by closing the DOS console.  There is no File/close menu in the game window. ALT+F4 didn't work. Sorry, I knew it. I wanted to make it stretchable on different screen sizes, but this is my first time using Allegro, I don't know how to do it properly. So to make it 'safe' on smaller screens, I decided the size is 500 x 300. I use software magnifier when running it on my 24" monitor. Believe me, the game play better using shifts rather than arrows. To back to the intro screen after losing the game, press [space]. Here is the intro1 screen: ---------------------------------------------------------------------- turrican · 2017-07-10 22:33 Here is my little project : https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldSh ooter Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip Simply game developed for my little daughter. Features : Video - Full-Screen OpenGL or DirectX 9 1% CPU usage 5% GPU Animations Mouse Input Collitions Cross-Platform and MultiOS ---------------------------------------------------------------------- lainz · 2017-07-10 22:41 Quote from: turrican on July 11, 2017, 12:33:37 amHere is my little project : https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldSh ooter Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip Simply game developed for my little daughter. Features : Video - Full-Screen OpenGL or DirectX 9 1% CPU usage 5% GPU Animations Mouse Input Collitions Cross-Platform and MultiOS Well done! I've played it with Wine on Ubuntu and works fine. The only thing I see is that you maybe can center the ball when you do the click, simply add an offset so when you click it is displayed centered, not from the left corner. Another thing is that there's some flickering of the balls when there are more than one at the same time, but I can't say if it's a problem with Wine or the application itself. ---------------------------------------------------------------------- Pascal · 2017-07-11 04:29 Quote from: turrican on July 11, 2017, 12:33:37 amHere is my little project : https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldSh ooter Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip Simply game developed for my little daughter. Features : Video - Full-Screen OpenGL or DirectX 9 1% CPU usage 5% GPU Animations Mouse Input Collitions Cross-Platform and MultiOS Doesn't run on Win10 Pro x64 (1703). Just Black Screen with flickering mouse pointer. Compatibility mode doesen't help except flicking mouse pointer. ---------------------------------------------------------------------- Ñuño_Martínez · 2017-07-11 08:21 Quote from: lainz on July 10, 2017, 05:21:58 pmFor Ubuntu I downloaded the PPA containing 5.2 and the game runs fine. For Wine I downloaded the 5.2.0 dll and put into the exe folder, then run with Wine and works fine also. If you download a newer version like 5.2.x there are more dependencies that doesn't come with Windows, something related with C++. These DLL doesn't come with the Allegro download, must be downloaded in another place. As the Allegro.pas README file says, I recommend you to download the DLL from http://download.gna.org/allegro/allegro-bin/.  I had little problems with them.  (I'm having troubles to connect with them now) Quote from: minesadorada on July 10, 2017, 06:28:45 pmThe game opens OK, but with a DOS console in the background.  The game window is tiny (320x240?) on a 1920 screen, so the instruction text is practically unreadable. The best solution is to use Allegro transformations (linked the C documentation because the Pascal one isn't complete yet).  The idea is to create a "zoom in" transformation and apply it when rendering.  In my game engine I use this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i CONST{ The screen size we want. }  S_WIDTH = 320; S_HEIGHT = 240;VAR{ The transformation matrix. }  TheMatrix: ALLEGRO_TRANSFORM;{ The display. }  Display: ALLEGRO_DISPLAYptr; BEGIN  ...{ After creating the display. }  al_identity_transform (TheMatrix); { To initialize. }  al_scale_transform (    fMatrix,    al_get_display_width (Display) / S_WIDTH,    al_get_display_height (Display) / S_HEIGHT  );{ This will aply the matrix to the current active bitmap.  Everything draw  to such bitmap will be affected by this matrix.  Don't need to call this  each frame. }  al_use_transform (fMatrix);  ... The background console can be avoided compiling with the "-WG" option ("Windows GUI application"). ---------------------------------------------------------------------- turrican · 2017-07-12 13:37 Quote from: lainz on July 11, 2017, 12:41:06 amQuote from: turrican on July 11, 2017, 12:33:37 amHere is my little project : https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldSh ooter Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip Simply game developed for my little daughter. Features : Video - Full-Screen OpenGL or DirectX 9 1% CPU usage 5% GPU Animations Mouse Input Collitions Cross-Platform and MultiOS Well done! I've played it with Wine on Ubuntu and works fine. The only thing I see is that you maybe can center the ball when you do the click, simply add an offset so when you click it is displayed centered, not from the left corner. Another thing is that there's some flickering of the balls when there are more than one at the same time, but I can't say if it's a problem with Wine or the application itself. Thank you very much! I will implement the improvements that are you suggesting Quote from: Pascal on July 11, 2017, 06:29:48 amQuote from: turrican on July 11, 2017, 12:33:37 amHere is my little project : https://github.com/turric4n/SimpleZGL/tree/master/examples/StarfieldSh ooter Here is the binary for Windows : http://www.turric4n.com/static/StarShooter_i386-win32.zip Simply game developed for my little daughter. Features : Video - Full-Screen OpenGL or DirectX 9 1% CPU usage 5% GPU Animations Mouse Input Collitions Cross-Platform and MultiOS Doesn't run on Win10 Pro x64 (1703). Just Black Screen with flickering mouse pointer. Compatibility mode doesen't help except flicking mouse pointer.   Thanks for your feedback. What GPU are you using? ---------------------------------------------------------------------- turrican · 2017-07-12 13:41 Quote from: lainz on July 10, 2017, 05:21:58 pmFor Ubuntu I downloaded the PPA containing 5.2 and the game runs fine. For Wine I downloaded the 5.2.0 dll and put into the exe folder, then run with Wine and works fine also. If you download a newer version like 5.2.x there are more dependencies that doesn't come with Windows, something related with C++. These DLL doesn't come with the Allegro download, must be downloaded in another place. I had the same problem and I solved with the correct DLL 5.2 . ---------------------------------------------------------------------- Pascal · 2017-07-12 14:20 Quote from: turrican on July 12, 2017, 03:37:59 pm Thanks for your feedback. What GPU are you using? Build in Intel (i7 6700K -> HD 530) Just tested on an other machine. With HD 4600 it works. Nice ---------------------------------------------------------------------- turrican · 2017-07-12 15:01 Quote from: Pascal on July 12, 2017, 04:20:19 pmQuote from: turrican on July 12, 2017, 03:37:59 pm Thanks for your feedback. What GPU are you using? Build in Intel (i7 6700K -> HD 530) Just tested on an other machine. With HD 4600 it works. Nice  It's strange about Integrated Intel 530. I will check with my Surface PRO 3 that has an integrated graphics too. Thanks for your efforts ---------------------------------------------------------------------- Pascal · 2017-07-12 21:17 Here you can see some progress on my presentation prog: The sizeable SlidesView: ---------------------------------------------------------------------- Ericktux · 2017-07-14 05:08 hi my friends, this is my videogame incomplete Years ago, called "Mario cronch"  I share the sources  https://www.mediafire.com/?8fot8akdaazpmwo (project) ---------------------------------------------------------------------- turrican · 2017-07-14 07:25 Quote from: Ericktux on July 14, 2017, 07:08:08 amhi my friends, this is my videogame incomplete Years ago, called "Mario cronch"  I share the sources  https://www.mediafire.com/?8fot8akdaazpmwo (project) Hi! I saw your code and is very chaotic Recomendations :    - Avoid timers! Just one timer for the main loop. Usage more than one timer points to bad/faulty architecture design.    - Resources are inside the PE externalize assets!    - Canvas and GDI is very slow CPU and consumer, try to use another canvas implementation or move to an hardware accelerated backend. Ex. OpenGL. Just my 5 cents. ---------------------------------------------------------------------- Handoko · 2017-07-18 05:49 Some improvements have added to Furious Paladin: - 18 July 2017  - Double sized window on large screen - 18 July 2017  - Use ctrl keys instead of shift keys - 10 July 2017  - Use 60 fixed fps On Windows, the shift key detection behave differently than on Linux. So I changed it to use ctrls instead of shifts. The game does not use arrow keys for playing, because it plays better using 2 hands. For Linux users, you need to install liballegro5.2 package. For Windows users, the needed library files are included in the download. On double sized display mode, the images do not look good. It is understandable because it used 2x scale up. Nothing much I can do, because the size of paladin images I got are too small. http://forum.lazarus.freepascal.org/index.php/topic,35313.msg252085.ht ml#msg252085 ---------------------------------------------------------------------- Ñuño_Martínez · 2017-07-18 07:49 I should do some testing yet but I think we have the Allegro.pas 5.2 Demonstration Game (if I have your authorization and sources to add it to the official repository, and apply the zlib/png LICENSE to it, of course).  Thanks Handoko. ---------------------------------------------------------------------- User137 · 2017-07-20 03:34 Still working on Sudoku app, but i had a very long break. This won't have much of features at all, but i think it goes well enough for a small graphical demonstration. A little more work needed before giving out source, as it doesn't yet even congratulate you on a finished game    It's playable though, and some number animation is shown while the worker thread is finding a playble grid. ---------------------------------------------------------------------- Handoko · 2017-07-20 04:18 The graphics looks good. What graphics library did it use? Is it nxPascal? ---------------------------------------------------------------------- User137 · 2017-07-20 05:15 Yes, it's nxPascal. This should be a working source (too big to upload on forum): https://www.dropbox.com/s/19jsdyo79ktmpmn/nxPascal_LazDemo_2017.zip?dl =0 Tested with Win10 64-bit compiling. Your Lazarus needs OpenGLContext package installed, it comes with Lazarus but not installed by default. ---------------------------------------------------------------------- Handoko · 2017-07-20 06:23 Compile succeed but I got SIGSEGV error immediately when I run the demo. Tested on Lazarus 1.6.4 64-bit on Ubuntu Mate 16.10, it has OpenGLContext installed properly. ---------------------------------------------------------------------- User137 · 2017-07-20 06:33 I'm not entirely sure if this is the why, but the game uses TThread in sudokuUnit.pas. Maybe this is needed in topmost uses list Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i {$ifdef unix}  cthreads,  cmem, // the c memory manager is on some systems much faster for multi-threading{$endif} ---------------------------------------------------------------------- turrican · 2017-07-21 07:38 Quote from: Ñuño_Martínez on July 18, 2017, 09:49:18 amI should do some testing yet but I think we have the Allegro.pas 5.2 Demonstration Game (if I have your authorization and sources to add it to the official repository, and apply the zlib/png LICENSE to it, of course).  Thanks Handoko. I'm doing a Allegro 5.2 game example too ---------------------------------------------------------------------- Handoko · 2017-07-21 08:10 Quote from: turrican on July 21, 2017, 09:38:08 amI'm doing a Allegro 5.2 game example too That's great. Allegro is good game library, it should get more publicity. Quote from: User137 on July 20, 2017, 08:33:42 amI'm not entirely sure if this is the why, but the game uses TThread in sudokuUnit.pas. Maybe this is needed in topmost uses list Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i {$ifdef unix}  cthreads,  cmem, // the c memory manager is on some systems much faster for multi-threading{$endif} I tried your suggestion, but didn't help. I found nxPascal many years ago. I believe it has good potential but I didn't try it because I found no tutorial. Learning a new framework without tutorial is hard, please consider to add some tutorials for beginners. ---------------------------------------------------------------------- marcov · 2017-07-21 08:49 Quote from: Handoko on July 20, 2017, 06:18:12 amThe graphics looks good. What graphics library did it use? Is it nxPascal? I like the visual bit also, looks very sharp ---------------------------------------------------------------------- Thaddy · 2017-07-21 09:24 @Marco I suspect you mean this? http://forum.lazarus.freepascal.org/index.php?action=dlattach;topic=35 313.0;attach=19516;image Great game!! Sometimes I win! ---------------------------------------------------------------------- turrican · 2017-07-21 09:56 I'm looking for all the examples and we have quality but not quantity. So, we need more people here! Pascal have no limits! We need to make this contest more popular. ---------------------------------------------------------------------- Ñuño_Martínez · 2017-07-21 16:42 Quote from: turrican on July 21, 2017, 09:38:08 amQuote from: Ñuño_Martínez on July 18, 2017, 09:49:18 amI should do some testing yet but I think we have the Allegro.pas 5.2 Demonstration Game (if I have your authorization and sources to add it to the official repository, and apply the zlib/png LICENSE to it, of course).  Thanks Handoko. I'm doing a Allegro 5.2 game example too Cool, somebody else doing my work. That's fine.  I can do other things then (i.e. documentation). ---------------------------------------------------------------------- User137 · 2017-07-22 01:58 Quote from: Thaddy on July 21, 2017, 11:24:22 am@Marco I suspect you mean this? http://forum.lazarus.freepascal.org/index.php?action=dlattach;topic=35 313.0;attach=19516;image Great game!! Sometimes I win!  I did mention i only made it work in Win10. I don't have a Linux, and it's never been kind to me when trying to run Linux on virtual machine with hardware accelerated graphics. It said it compiled too, so i don't have any possible suggestions to give. If anyone can tell what goes wrong it would be appreciated. Either it's a threading problem with sudoku algorithm or something might be going wrong with dglOpenGL on Linux. Only you guys can tell how to fix it, private message or anything. ---------------------------------------------------------------------- lainz · 2017-07-29 18:27 A month and two days left, or we should start voting right now? ---------------------------------------------------------------------- balazsszekely · 2017-07-29 18:34 @lainz In order to vote, we need a link, where all the projects can be downloaded at once. I'm almost certain you already have a link for us(us --> those who did not follow the thread in details, but are interested enough to vote). Thank you! ---------------------------------------------------------------------- lainz · 2017-07-30 00:24 Quote from: GetMem on July 29, 2017, 08:34:22 pm@lainz In order to vote, we need a link, where all the projects can be downloaded at once. I'm almost certain you already have a link for us(us --> those who did not follow the thread in details, but are interested enough to vote). Thank you! Almost done. I need to add one or two of the latest projects. Done. Things missing: - Handoko sources - J-G sources: try to compile says missing png images The link is in the first post, it's on Lazarus CCR at GitHub. And here: https://github.com/lazarusccr/GraphicsContest I think I need to provide the executables also like I did for previous contests. If anyone wants to help me with binaries for all platforms: thanks I've added the poll, so anyone can start voting the submitted projects from now until 1 September. That day we will know the winner. ---------------------------------------------------------------------- bylaardt · 2017-07-30 03:35 Quote from: lainz on July 30, 2017, 02:24:55 amI think I need to provide the executables also like I did for previous contests. Executable avaliable For Win (.exe) and Linux(.i386 ou .x86_64) with screenshots: https://github.com/bylaardt/duplo6 https://github.com/bylaardt/relogio https://github.com/bylaardt/steampunkclock ---------------------------------------------------------------------- Handoko · 2017-07-30 03:44 I have submitted and donated the source code of Furious Paladin to Nuno. I had never used Allegro.pas before, so I let him to check my code to make sure it is conform the 'standard'. The (checked/modified) code should be downloadable from Allegro.pas website. And now, I'm preparing the tutorial based on the code. ---------------------------------------------------------------------- bylaardt · 2017-07-30 04:45 I'm curious about: Sudoku (execution error describe by handoko) Mariocronk (I can't compile it, probably missing libs. Please, can you provide a linux version?) StarFieldShuter (same problem) PS: It's not fair chose just one! Why not vote by category? ---------------------------------------------------------------------- Handoko · 2017-07-30 05:01 I managed to fix Sudoko (by User137) to make it runable on Linux: 1. Add a new procedure Start(Data: PtrInt) on Main.pas: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i type   { TForm1 }   TForm1 = class(TForm)  //...  private  //...    procedure Start(Data: PtrInt);  //...  end; procedure TForm1.Start(Data: PtrInt);begin  if not nx.CreateGlWindow(self) then begin    showmessage('Failed to initialize OpenGL!');  end;  FormPaint(Self);end; 2. Change opengl initialization code with QueueAsyncCall on FormCreate in Main.pas:  Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TForm1.FormCreate(Sender: TObject);begin  // Initialize game window  clientHeight:=screen.Height * 3 div 5;  clientWidth:=clientHeight * 4 div 3;   Randomize;   // Remove these 3 lines below  //if not nx.CreateGlWindow(self) then begin  //  showmessage('Failed to initialize OpenGL!');  //end;   // But use this    Application.QueueAsyncCall(@Start, 0);end; 3. Add -dUseCThreads to the project's custom options Lazarus main menu > Project > Project Options > Compiler Options > Custom Options By doing the things above, Sudoku (nxDemo2017) should be compilable on Linux, I tested it on Ubuntu Mate 64-bit. The fix #1 and #2 are based on the advices by @Pascal and @Akira1364: http://forum.lazarus.freepascal.org/index.php/topic,37356.msg250882.ht ml#msg250882 Thank you Pascal and Akira I got error 211 when inspecting the code, so I found the fix #3 here: http://wiki.lazarus.freepascal.org/Lazarus_Faq#Lazarus_crashes_with_ru ntime_error_211_after_I_installed_a_component Because I do not have account on GitHub and SourceForge, and the compressed file (657 Kb) is too big to put here, it is now temporary hosted on my blog. Someone please grab the code before I remove it. Password to download: lazarus http://graphicslearning.com/furious-paladin-tutorials/ ---------------------------------------------------------------------- taazz · 2017-07-30 05:10 Quote from: Handoko on July 30, 2017, 07:01:02 amhttp://graphicslearning.com/furious-paladin-tutorials/ link removed. It can stay there for a while I guess I will take down when the author tells me that he got it. After that it is up to the author to share it as he sees fit. ---------------------------------------------------------------------- Handoko · 2017-07-30 06:49 Quote from: bylaardt on July 30, 2017, 06:45:40 amI'm curious about: ... Mariocronk (I can't compile it, probably missing libs. Please, can you provide a linux version?) I managed to make Mario Cronch to run on Linux but without audio: - Disable/remove mmsystem from the uses clause in unit1.pas line #9 - Change windows to LCLType on the uses clause in unit1.pas line #9 - Disable playsound in unit1.pas line #125 - Disable playsound in unit1.pas line #133 I am not familiar with audio programming, but if someone interested to make the demo to be able to produce sound on Linux, you can try: http://wiki.freepascal.org/Multimedia_Programming As mentioned by the author Ericktux, the game is incomplete but I impressed that the demo did not use any (3rd party) graphics library, just TImage. ---------------------------------------------------------------------- bylaardt · 2017-07-30 12:44 thanks handoko, it works. Both sudoku and mariocronk. ---------------------------------------------------------------------- User137 · 2017-07-30 13:01 Uploaded again on my source, so you can take those others down https://www.dropbox.com/s/19jsdyo79ktmpmn/nxPascal_LazDemo_2017.zip?dl =0 Just a minor fix, using sleep(5) instead of 30 and skipping less recursions during generation. This gives higher fps and so feels a little smoother. Thanks Handoko too, added in credits. Both seem to be just specific to Linux things. Odd that stuff actually isn't crossplatform with out of the box settings even in Lazarus development. ---------------------------------------------------------------------- J-G · 2017-07-30 15:36 Quote from: lainz on July 30, 2017, 02:24:55 amThings missing: - J-G sources: try to compile says missing png images The link is in the first post, it's on Lazarus CCR at GitHub. And here: https://github.com/lazarusccr/GraphicsContestI presume that I don't need to do anything then. Quote from: lainzI think I need to provide the executables also like I did for previous contests.Yes - I would appreciate easy access to .EXE files - I don't have a Linux setup so cannot evaluate any entry that doesn't have a windows version. I have looked at the three entries by bylaardt - a small comment on the dominos game, my player was holding the double 6 but that tile was played by another and when I eventually played it, it turned into a double 1 !!  -  there were a few other mis-matched tile displays as well. Lainz - can you change the title of my entry to 'Pocket Watch' ?    -  to reflect what it actually is please. ---------------------------------------------------------------------- lainz · 2017-07-30 16:07 Quote from: J-G on July 30, 2017, 05:36:13 pmQuote from: lainz on July 30, 2017, 02:24:55 amThings missing: - J-G sources: try to compile says missing png images The link is in the first post, it's on Lazarus CCR at GitHub. And here: https://github.com/lazarusccr/GraphicsContestI presume that I don't need to do anything then. Quote from: lainzI think I need to provide the executables also like I did for previous contests.Yes - I would appreciate easy access to .EXE files - I don't have a Linux setup so cannot evaluate any entry that doesn't have a windows version. I have looked at the three entries by bylaardt - a small comment on the dominos game, my player was holding the double 6 but that tile was played by another and when I eventually played it, it turned into a double 1 !!  -  there were a few other mis-matched tile displays as well. Lainz - can you change the title of my entry to 'Pocket Watch' ?    -  to reflect what it actually is please. Hi, the sources I uploaded says missing png images, you can check that? And I've added a comment in the entry with that name, since I only named the entries as the project structure in the git repository, so anyone knows what source is voting. ---------------------------------------------------------------------- bylaardt · 2017-07-30 17:20 Quote from: J-G on July 30, 2017, 05:36:13 pmI have looked at the three entries by bylaardt - a small comment on the dominos game, my player was holding the double 6 but that tile was played by another and when I eventually played it, it turned into a double 1 !!  -  there were a few other mis-matched tile displays as well. thanks for testing it on windows. do you used the compiled version avaliable on https://github.com/bylaardt/duplo6 otherwise what version of Bgrabitmap do you had used? My wife play every day, minimum 2 hours since i finalize it and never report to me something like that. She wants i create a server version to play online with others real players, but now she must wating to my next summer vacation (january) Others proposals are: Create some variations of rules to play like spanish rules; Personal tilles  Personal avatars PS: i love your bgraphics (pocket watch). it was my inspiration to make steampunkclock. ---------------------------------------------------------------------- J-G · 2017-07-30 17:32 @lainz I've checked the list of .PNG files in the 'LoadImages' procedure (lines 187 - 211) against the list in the GitHub link and as it happens there are 3 files too many - ie. they are in GitHub but not actually required in my program  -  they are alternative images that I created but found I didn't need (5A, 5B & 5C). So I can't suggest a reason for the compiler complaining. I have no problem compiling. ---------------------------------------------------------------------- molly · 2017-07-30 17:51 @J-G/lainz: are those errors originating from resourced images ? lpi file: Quote13      14           15           16           17           18           19           20           21           22           23           24           25           26           27           28           29           30           31           32           33           34           35           36           37           38           39         Note the subdir. edit: note the casing of the names as well btw (i haven't verified). ---------------------------------------------------------------------- J-G · 2017-07-30 18:01 Quote from: bylaardt on July 30, 2017, 07:20:02 pmthanks for testing it on windows. do you used the compiled version avaliable on https://github.com/bylaardt/duplo6Yes  Quote from: bylaardtotherwise what version of Bgrabitmap do you had used?For your benefit - 9.2.1 and _Controls 431  the only version I downloaded in October 2016 Quote from: bylaardtMy wife play every day, minimum 2 hours since i finalize it and never report to me something like that. She wants me to create a server version to play online with others real players, but now she must wait until my next summer vacation (january) 2 hours a day !!!!  -  you treat her too well  I played for about 10 minutes - just to get a feel for the game. It must be at least 50 years since I played Dominoes, probably with my father and certainly before I got married (1972) Quote from: bylaardtOthers proposals are: Create some variations of rules to play like Spanish rules; Personal tiles  Personal avatarsI don't know about Spanish rules - I barely remembered that you must match the 'end' number!  A vague memory of '5s and 3s' springs to mind. Quote from: bylaardtPS: i love your bgraphics (pocket watch). it was my inspiration to make steampunkclock.Thanks for the compliment - it's good to be an inspiration -  I haven't yet had time to properly evaluate the SteamPunk - though I do intend to pass that on to a friend who has a SteamPunk party every year where we all dress appropriately ---------------------------------------------------------------------- J-G · 2017-07-30 18:25 Quote from: molly on July 30, 2017, 07:51:29 pm@J-G/lainz: are those errors originating from resourced images ? Note the subdir. edit: note the casing of the names as well btw (i haven't verified). Ah....  You may well have found the issue Molly  -  thanks. I didn't think to mention that I keep the .PNG files in a separate folder [Images] and of course putting them into a .ZIP file doesn't reflect that. I'm sure putting the files 01- to 27- in 'images' will sort it; though the resource entries could be re-created to reflect a 'flat-file' approach as well. I don't think the casing is of any consequence - I have gone through it with a fine tooth comb - though I do acknowledge that it might have been an issue. ---------------------------------------------------------------------- molly · 2017-07-30 18:38 Quote from: J-G on July 30, 2017, 08:25:33 pmAh....  You may well have found the issue Molly  -  thanks. No problem. common error when sharing sources with others. Lazarus is unforgivable though  QuoteI'm sure putting the files 01- to 27- in 'images' will sort it; If you make it "Images" to keep some other file-systems/OS happy, then everyone should be able to enjoy it  Quotethough the resource entries could be re-created to reflect a 'flat-file' approach as well. You have many options. The one you choose is a simple/elegant one. QuoteI don't think the casing is of any consequence - I have gone through it with a fine tooth comb - though I do acknowledge that it might have been an issue. Same reason as above. Some filesystem's/OS' are case sensitive. But as said, i did not verify the names myself so might have been wrong there. ---------------------------------------------------------------------- bylaardt · 2017-07-30 19:26 Quote from: J-G on July 30, 2017, 08:01:19 pm2 hours a day !!!!  -  you treat her too well  I played for about 10 minutes - just to get a feel for the game. It must be at least 50 years since I played Dominoes, probably with my father and certainly before I got married (1972) I believe is just a OCD crisis Quote from: J-G on July 30, 2017, 08:01:19 pmFor your benefit - 9.2.1 and _Controls 431  the only version I downloaded in October 2016 Try with 9.5 Quote from: J-G on July 30, 2017, 08:01:19 pmI don't know about Spanish rules - I barely remembered that you must match the 'end' number!  A vague memory of '5s and 3s' springs to mind. Just Variations of score counting on a blocked game. Other variations increase only 1  for each hand played. ---------------------------------------------------------------------- J-G · 2017-07-30 19:28 Quote from: molly on July 30, 2017, 08:38:51 pmQuote from: J-G on July 30, 2017, 08:25:33 pmAh....  You may well have found the issue Molly  -  thanks. No problem. common error when sharing sources with others. Lazarus is unforgiving though  QuoteI'm sure putting the files 01- to 27- in 'images' will sort it; If you make it "Images" to keep some other file-systems/OS happy, then everyone should be able to enjoy it  I'm obviously having a 'sloppy' day ---------------------------------------------------------------------- Handoko · 2017-07-31 03:42 I noticed there was a small bug in Furious Paladin that prevent background audio to play, so I made the small fix today. How to install: - On Windows, just unzip the compressed file and play - On Linux64, you need to install liballegro5.2 package How to play: - [left ctrl]            -> move left - [right ctrl]          -> move right - [left + right ctrl] -> attack - [esc]                 -> pause/quit - [space]             -> resume Cheat codes (command parameter): /debug          -> show bounding box of the collision test /fastrecover  -> fast health recovery /stoneskin     -> less damage from enemies History: - 31 July 2017, RC3 - Fix background audio issue - 18 July 2017, RC2 - Double sized window on large screen - 18 July 2017, RC2 - Use ctrl keys instead of shift keys - 10 July 2017, RC1 - Use 60 fixed fps Download binary (Linux64 and Win32 only): http://graphicslearning.com/furious-paladin-tutorials/ Download source code: (still waiting Nuno response) ---------------------------------------------------------------------- lainz · 2017-08-01 13:59 No one voted? Please vote, so we can decide who is the winner ---------------------------------------------------------------------- Eugene Loza · 2017-08-01 14:05 Quote from: lainz on August 01, 2017, 03:59:37 pmNo one voted? Please vote, so we can decide who is the winner Do you have an compiled nominees archive? I'm afraid I won't have enough time and motivation to install all the third-party libraries at the moment Neither to look in each authors personal repository for a compiled version (maybe later)... I'm afraid didn't have time to participate with a program this year due to a lot of work, I hope I'll be able to do it next year ---------------------------------------------------------------------- lainz · 2017-08-01 14:11 Quote from: Eugene Loza on August 01, 2017, 04:05:54 pmQuote from: lainz on August 01, 2017, 03:59:37 pmNo one voted? Please vote, so we can decide who is the winner Do you have an compiled nominees archive? I'm afraid I won't have enough time and motivation to install all the third-party libraries at the moment Neither to look in each authors personal repository for a compiled version (maybe later)... I'm afraid didn't have time to participate with a program this year due to a lot of work, I hope I'll be able to do it next year I'll find the time, maybe this weekend we can start with a fresh compilation of executables. ---------------------------------------------------------------------- lainz · 2017-08-01 14:38 Hi, it was easier than I thought Here are the binaries, for Windows (some include Linux also) https://github.com/lazarusccr/GraphicsContest/releases/tag/2017 All the sources https://github.com/lazarusccr/GraphicsContest Notice that I've not applied the fixes posted here to fix linux compilation, because I don't have linux to test right now. So please follow any advice before compiling. ---------------------------------------------------------------------- Eugene Loza · 2017-08-01 14:43 Quote from: lainz on August 01, 2017, 04:38:08 pmHere are the binaries, for Windows (some include Linux also) https://github.com/lazarusccr/GraphicsContest/releases/tag/2017Thanks a lot! ---------------------------------------------------------------------- Zath · 2017-08-01 14:48 Is there somewhere I can look through the entries one by one ? I can't vote without seeing them ! Thanks ---------------------------------------------------------------------- lainz · 2017-08-01 14:55 Quote from: Zath on August 01, 2017, 04:48:47 pmIs there somewhere I can look through the entries one by one ? I can't vote without seeing them ! Thanks Here: Quote from: lainz on August 01, 2017, 04:38:08 pmHi, it was easier than I thought Here are the binaries, for Windows (some include Linux also) https://github.com/lazarusccr/GraphicsContest/releases/tag/2017 All the sources https://github.com/lazarusccr/GraphicsContest Notice that I've not applied the fixes posted here to fix linux compilation, because I don't have linux to test right now. So please follow any advice before compiling. ---------------------------------------------------------------------- Zath · 2017-08-01 15:13 Quote from: lainz on August 01, 2017, 04:55:45 pmQuote from: Zath on August 01, 2017, 04:48:47 pmIs there somewhere I can look through the entries one by one ? I can't vote without seeing them ! Thanks Here: Quote from: lainz on August 01, 2017, 04:38:08 pmHi, it was easier than I thought Here are the binaries, for Windows (some include Linux also) https://github.com/lazarusccr/GraphicsContest/releases/tag/2017 All the sources https://github.com/lazarusccr/GraphicsContest Notice that I've not applied the fixes posted here to fix linux compilation, because I don't have linux to test right now. So please follow any advice before compiling. Thank you. ---------------------------------------------------------------------- bylaardt · 2017-08-01 19:46 @lainz "toc.wav" is missing on https://github.com/lazarusccr/GraphicsContest/releases/tag/2017. it works but the sound experience is not complete. Avaliable on https://github.com/bylaardt/duplo6/blob/master/toc.wav The original images used on StemPunkClock are now avaliable on https:/ /github.com/bylaardt/steampunkclock/tree/master/Original%20Images. Special thanks to J-G. ---------------------------------------------------------------------- Eugene Loza · 2017-08-02 07:36 My short review of the contesting projects  ball_by_raw Really nice joke-like idle game. I remember in 2000s' we've had a similar cheat "Do you like your salary?" and button "No" running away bgragraphics_by_j-g_(pocketwatch) Looks cool and stylish. However, I've ran into a bug, that it blinks ~1 times per second / Win7x64 duplo6_by_bylaardt Looks like a very nice game, thou I can't play dominoe I didn't even understand the rules furiouspalladin_by_handoko Really cool fully playable game which actually has it all. Thou the controls are horrible I always move in the wrong direction instead of attacking enemies. My max score was 23... One more thing, I couldn't close the game GUI window, only by closing the console window I could close the game (Win7x64) glslideshow_by_handoko Nice slideshow program, thou definitely lacks feature to load multiple files at once. Maybe some dynamic transparency would also make a nice addition. To be useful it has also to feature loading/saving of playlists and ability to run fullscreen. mariocronch_by_ericktux Flappy Mario Anyway it looks good. I've experienced a bug that player&enemies sprites blink thou. movingdots_by_lainz This one looks like a very cool effect, e.g. for a game loadscreen. But it blinks for me (did you forget doublebuffer=true?) and gives an error and heapTRC on close. movingdotsgl_by_lainz Works flawlessly, unlike previous variant, but not as spectacularly cool relogio_by_bylaardt Nice customizable watch. But again it blinks for me... As if doublebuffer=false. starsfieldshooter_by_turrican Shows me just blank black fullscreen... steampunkclock_by_bylaardt Nice and beautiful watch (again? clocks are popular ) But again it blinks onmouseover... what on the Earth is going on with my Windows? sudoku_by_user137 It looks spectacular and works flawlessly for me. Thou, I'm not a good sudoku player, therefore I can't solve it without aiding stuff like "marking obvious errors" (e.g. make the number red if it doesn't fit here) or pinning suggestions (e.g. I know that 6 or 7 may be in this cell, but I'm not yet sure which one exactly). Also a difficulty level would be more than welcome I wish there was an animation effect (like waving) of the whole field I personally liked sudoku_by_user137 (looks really cool and stylish) and furiouspalladin_by_handoko (nostalgic nice and clean pixelart with a warm feel to it) most of all (I like games ) closely followed by movingdots_by_lainz (perfectly wonderful effect, I can clearly see a "Loading..." inscription over it and a "hint of the day" slowly shifting in the bottom). I'm still not sure which project to vote for I also liked the idea of bgragraphics_by_j (looks nice and I believe some people would find it a useful addition to their desktops) and duplo6_by_bylaardt (I've seen a lot of people actually enjoying playing dominoe in our country in the past). An I'm still wondering if my "by-usefulness" approach and excessive use of smileys is applicable to a Graphics contest ---------------------------------------------------------------------- Handoko · 2017-08-02 07:57 Quote from: Eugene Loza on August 02, 2017, 09:36:58 amfuriouspalladin_by_handoko Really cool fully playable game which actually has it all. Thou the controls are horrible I always move in the wrong direction instead of attacking enemies. My max score was 23... One more thing, I couldn't close the game GUI window, only by closing the console window I could close the game (Win7x64) You can exit the game by simply pressing [Esc] once or twice. Yep, I admit the close icon on the titlebar is not functioning, I don't know why and don't know how to fix it. Controlling the game is not hard if you know how. As a paladin you should be brave, don't just standing and waiting enemy to approach you. You should walk toward an enemy and when you get near of it then press the opposite ctrl key. For example you press right ctrl to move right to get near an enemeny, without releasing the right ctrl then press left ctrl to change to attack mode. So, you should use 2 hands to play this game, each hand holding a ctrl key. ---------------------------------------------------------------------- J-G · 2017-08-02 10:40 I seldom have (or want) time to play games so I probably approach this review with a ‘twisted’ opinion Ball Agree with Eugene   BUT    I have beaten it  - by holding the mouse button down on the background I can move the cursor on top of the ball - it only moves on Mouse-Up. Duplo6 I think the graphics and animation are superb but as I mentioned before, I found some problems with the actual logic. In today’s testing my ‘hand’ had a 3-5 and a 5-3 but when the second one was played it became a 5-5. Similarly I had two 2-3 tiles and the second became a 2-5. On another occasion it appeared that I couldn’t ‘go’ but it waited for my play, only continuing when I played a 3-3, which became a 0-6. I’m using a 1280 x 1024 display and the whole board fills the height which interferes with the task-bar. Changing the height only changes the window size which hides the ‘hand’ at the bottom. It would be useful if the 'board' scaled with the window size. Furious Palladin I had two issues with this (one not yet resolved). Initially AVAST blocked it as potentially dangerous but I later had a message from them saying that it had been tested and added to their database as a ‘Good’. I can’t get it to run as it complains about  ‘allegro_image-5.2.dll’  missing. I have copied this to the program directory but presume that I need to register it which I am cautious about. glslideshow I can load .JPG images which I see in the pre-view pane and can select the animation type but when running, all I see are white rectangles on a black ground, Yes, they animate as expected, but don’t display the image. Like Eugene I would prefer the option to bulk load and to have formats other than .JPG available. mariocronch Perhaps it’s the fact that I am not a ‘gamer’ but I can only make Mario jump with the up-arrow and don’t get a penalty on a collision with either obstacle. Animation smooth and sound unobtrusive. movingdots Potentially mesmeric display emulating a snow or sand-storm and could well be useful as a 'Splash' screen. On exit I get a Heap Dump warning, though it does report 0 unfreed memory blocks. movingdotsgl This opens a full screen white window and then crashes with an app- crash report Problem Event Name:   APPCRASH   Application Name:   movingdotsgl.exe   Application Version:   0.0.0.0   Application Timestamp:   00000000   Fault Module Name:   StackHash_6521   Fault Module Version:   0.0.0.0   Fault Module Timestamp:   00000000   Exception Code:   c000041d   Exception Offset:   74034f0d   OS Version:   6.1.7601.2.1.0.256.1   Locale ID:   2057   Additional Information 1:   6521   Additional Information 2:   6521cdc86a112061028218551989cce5   Additional Information 3:   d377   Additional Information 4:   d3773384d5d5027faab34440da99a06d relogio Great ‘controls’ with infinite scaling and although it is possible to hide the controls by pushing the ‘splitter’ to the right edge of the window  I would prefer a [button] to remove the ‘form’ altogether once the controls have been adjusted. A further (hidden?) button to close or recover the controls would also be needed of course. starsfieldshooter Refuses to run due to missing .dll steampunkclock To properly evaluate this would take quite some time and require some external work in creating clock-face and hand images so I’ll limit my review to the excellent samples. These are very good sample designs but I notice a small alignment discrepancy with the seconds hand on all of them using a ‘one-second’ tick (most noticeable on the ‘Kitchen’ version). This may be down to an error in a constant or could be a mis-alignment of a bitmap. (I had a number of similar issues with my Pocket Watch which needed bitmaps re-creating with a small shift to make sure the hand aligned with the dial mark). This is in stark contrast to the Religio clock which is absolutely ‘spot on’.             On the ‘Neon’ version the sub-seconds dial in red is indistinct and I can’t see an option to change that - other than creating a replacement .PNG file! I do not see a ‘blink’ onmouseover as reported by Eugene nor on my Pocket Watch at each second. My TTimer interval is 1/100th second so there shouldn’t be a ~1 sec. event. I'm also conflicted regarding a 'vote' - - - SteamPunk could be useful if it could create a stand-alone clock. Duplo6 is (for me) the best animation but of course I haven't seen Furious Palladin or starsfieldshooter ---------------------------------------------------------------------- J-G · 2017-08-02 10:53 Quote from: Eugene Loza on August 02, 2017, 09:36:58 ambgragraphics_by_j-g_(pocketwatch) Looks cool and stylish. Thanks for your comment Eugene. You haven't mentioned it, and the only instructions are in the .lpi file, so I assume that you haven't 'opened' the case or viewed the 'movement'. I would be pleased to be dis-abused of this opinion Quote from: Eugene LozaHowever, I've ran into a bug, that it blinks ~1 times per second / Win7x64I'm also on Win 7x 64 and, as you see in my review, there is no ~1 sec. event. ---------------------------------------------------------------------- Handoko · 2017-08-02 11:12 Quote from: J-G on August 02, 2017, 12:40:24 pmFurious Palladin I had two issues with this (one not yet resolved). Initially AVAST blocked it as potentially dangerous but I later had a message from them saying that it had been tested and added to their database as a ‘Good’. I can’t get it to run as it complains about  ‘allegro_image-5.2.dll’  missing. I have copied this to the program directory but presume that I need to register it which I am cautious about. glslideshow I can load .JPG images which I see in the pre-view pane and can select the animation type but when running, all I see are white rectangles on a black ground, Yes, they animate as expected, but don’t display the image. Like Eugene I would prefer the option to bulk load and to have formats other than .JPG available. Thanks for the test. In my test, I didn't need to install/register allegro_image-5.2.dll. I guess your antivirus blocked it. You can try to whitelist it on your antivirus settings. I found a bug in glslideshow, which I think is the problem that makes it fails to load jpeg images. Hopefully I can release the fix version tomorrow. ---------------------------------------------------------------------- J-G · 2017-08-02 11:47 Quote from: Handoko on August 02, 2017, 01:12:59 pmIn my test, I didn't need to install/register allegro_image-5.2.dll. I guess your antivirus blocked it. You can try to whitelist it on your antivirus settings.As a quick test I just disabled my AV and tried again but with the same result. Could it be that the .DLL needs to be in c:/.../sytem32 - - - or some other 'specific' location? Quote from: HandokoI found a bug in glslideshow, which I think is the problem that makes it fails to load jpeg images. Hopefully I can release the fix version tomorrow.That's at least a result    but it seems that ONLY .JPG images are allowed. Well, at least I can't find a way to specify any other file-type. ---------------------------------------------------------------------- bylaardt · 2017-08-02 18:03 Quote from: Eugene Loza on August 02, 2017, 09:36:58 amduplo6_by_bylaardt Looks like a very nice game, thou I can't play dominoe I didn't even understand the rules To learn you need: 1 Table - Preferably in a public square; 1 partner; 2 oponents several beer bottles As you can see, it's a very complex game, it requires years of improvement. It's no wonder you can see just elderlies playing. Now serious: I know that partnership dominoes is popular game only in some countries. That's why I believe this game (electronic format) is unique, and that's why I've chosen it. I really  recommend you learn, not this electronic version but the real live version, with real people's, real partnership and in a public place. it's not just a game, is a therapy. I really  recommend you learn, not this electronic version but the real live version, with real people's, real partnership and in a public place. Here in south of Brazil beer can be optional when you replace it with a drink knowed as "chimarrão" - matte herb tea without suggar - or by a coffe if you go to play on a coffe shop. ---------------------------------------------------------------------- Eugene Loza · 2017-08-02 19:26 Quote from: bylaardt on August 02, 2017, 08:03:09 pmQuote from: Eugene Loza on August 02, 2017, 09:36:58 amduplo6_by_bylaardt Looks like a very nice game, thou I can't play dominoe I didn't even understand the rules To learn you need: 1 Table - Preferably in a public square; 1 partner; 2 oponents several beer bottlesIt has been extremely popular in our country exactly with the same conditions  I've been playing this variant of the game when I was a child: https://www.youtube.com/watch?v=23fBoqQxSgQ Couldn't find it with English subs... And automatically recognized subs are wrong... ---------------------------------------------------------------------- lainz · 2017-08-02 19:53 In Argentina we play Domino this way: - 1 vs 1 - at first, each player takes 7 pieces - then we start with a double one (0:0, if not in hand then 1:1, 2:2 and so on..) that is in the hand of any of the two players. else if no piece meets the requeriments I don't know usually that doesn't happens  - each player positions a piece (in his turn), if the player doesn't have one with one of the extreme numbers, must take one from the heap of pieces, as many as he can put one in the game. - wins the one that holds zero pieces in his movement - if the game ends before one get's zero pieces (like no more valid movements), wins the one with less pieces in hand ---------------------------------------------------------------------- Eugene Loza · 2017-08-02 20:30 Quote from: lainz on August 02, 2017, 09:53:29 pmIn Argentina we play Domino this way:Yep, exactly the same rules I know. ---------------------------------------------------------------------- bylaardt · 2017-08-02 20:49 just "partnership double six" is not so popular. individual dominoes is very popular around the world. ---------------------------------------------------------------------- Lulu · 2017-08-02 21:06 Hello all !  I've finally finished (it's never finished...) my game Educ'Race. It have 9 stages in which car's player must take the good number that appear on the road, according to the selected multiplication table (from 2 to 9, randomly). I have added some effects like rain, snow, fog, night when car is in a tunnel, etc... I've also written Tile Map Designer, a small editor for make the game's map. I have no idea if it compile on different platform than windows. It use TOpenGLControl. Thanks you to have a try ! Game windows executable http://www.lulutech.fr/EducRace/EducRace.7z Tile Map Designer windows executable www.lulutech.fr/EducRace/TileMapDesigner.7z Source http://www.lulutech.fr/EducRace/EducRaceSrc.7z @Circular: I allowed myself to use your 'Water_improved' that you have posted on a topic in this forum, in the splash screen at the beginning of the game.  Thanks for this code ! ---------------------------------------------------------------------- jc99 · 2017-08-02 23:24 @Lulu, Game doesn't run due to missing openal32.dll Could you please include it to your binary-archive Thanks in advance ---------------------------------------------------------------------- taazz · 2017-08-02 23:44 Quote from: jc99 on August 03, 2017, 01:24:33 am@Lulu, Game doesn't run due to missing openal32.dll http://www.openal.org/ ---------------------------------------------------------------------- jc99 · 2017-08-03 00:38 Quote from: taazz on August 03, 2017, 01:44:28 amhttp://www.openal.org/ I know that, but you cannot load just the dll there you must choose between the win installer or the sdk-installer. So why not include the missing dll like anyone else. This makes also sure the dll have the right version. ---------------------------------------------------------------------- lainz · 2017-08-03 02:19 Quote from: Lulu on August 02, 2017, 11:06:00 pmHello all !  I've finally finished (it's never finished...) my game Educ'Race. It have 9 stages in which car's player must take the good number that appear on the road, according to the selected multiplication table (from 2 to 9, randomly). I have added some effects like rain, snow, fog, night when car is in a tunnel, etc... I've also written Tile Map Designer, a small editor for make the game's map. I have no idea if it compile on different platform than windows. It use TOpenGLControl. Thanks you to have a try ! Game windows executable http://www.lulutech.fr/EducRace/EducRace.7z Tile Map Designer windows executable www.lulutech.fr/EducRace/TileMapDesigner.7z Source http://www.lulutech.fr/EducRace/EducRaceSrc.7z @Circular: I allowed myself to use your 'Water_improved' that you have posted on a topic in this forum, in the splash screen at the beginning of the game.  Thanks for this code ! Thanks. I've added you to the poll so anyone can vote your project. ---------------------------------------------------------------------- Lulu · 2017-08-03 06:19 Thanks Lainz Quote from: jc99 on August 03, 2017, 02:38:33 amQuote from: taazz on August 03, 2017, 01:44:28 amhttp://www.openal.org/ I know that, but you cannot load just the dll there you must choose between the win installer or the sdk-installer. So why not include the missing dll like anyone else. This makes also sure the dll have the right version. Thanks for the feedback. I added OpenAL32.dll in the zip file. I hope it will work. @Handoko, I like your game ! It reminds me of the old games I played when I was young Can we expect september 1 to vote? ---------------------------------------------------------------------- J-G · 2017-08-03 09:48 Quote from: jc99 on August 03, 2017, 01:24:33 am@Lulu, Game doesn't run due to missing openal32.dll Could you please include it to your binary-archive Thanks in advanceI had the same problem and I have now, 1 - downloaded the new file, 2 - confirmed that OpenAL32.dll is in the .exe folder but - -  I now get a simple "The application was unable to start correctly (0x000007b)"  error message ---------------------------------------------------------------------- taazz · 2017-08-03 11:35 Quote from: jc99 on August 03, 2017, 02:38:33 amQuote from: taazz on August 03, 2017, 01:44:28 amhttp://www.openal.org/ I know that, but you cannot load just the dll there you must choose between the win installer or the sdk-installer. So why not include the missing dll like anyone else. This makes also sure the dll have the right version. Because it has the complete installation and its the oficial distribution site.I do not know if the dll needs anything else or worst it needs a low level driver installed on the system. Why should I trust any one to share a clean non infected dll I prefer to go to the source which is their obligation to share clean non infected dlls with an installer that makes sure all requirements are met. Adding a dll in the release might or might not work it might work for you for example but for me because I'm using linux/xp/95 or what ever OS  it requires a bit more to be installed. Why gamble when you can be 100% certain. ---------------------------------------------------------------------- Handoko · 2017-08-03 11:52 I have fixed a minor issue and added some improvements to glSlideshow. At the beginning I want to make a pictures-to-video conversion tool, but because of the limited time I have it now only has the very basic features: - Slide In Transitions (up, down, left, right) - Fade To Background Transition - Scale Up & Down Transitions - Ribbon Transitions (left, up) - Rotate Transitions (cw, ccw) - Support wide range of image formats - Use OpenGL rendering Limitations: - No support for resizing and full screen preview - No audio support - No text support - Max. 5 slides - Cannot remove slide - Cannot save project - Cannot export to avi/mpeg I often help my friend to create videos of their family events. As a Linux user I use Kdenlive, DVD Styler, Pitivi, and OpenShot. None of them are suitable for production use. They are buggy and frequently crash or exit in the middle of working. It's been a long time I wanted to create a simple image/video slideshow tool that can export the result to video format. glSlideshow is the early prototype of the tool I need and wanted to create. But I think I may not spend much time to make it to a finished program. The supported image file format is based on TImage capability. Thanks Molly and Taazz for suggesting it. ---------------------------------------------------------------------- Lulu · 2017-08-03 12:03 @Taazz, I understand, I removed OpenAL32.dll from the executable. If someone want to test the game, please go to https://openal.org/ to download the good dll for your os. Thanks ! @Handoko, I can't found the source for your 'Furious Paladin' game. I'm interested how you differenciate the right control key from the left. One time I try to do it, I never succes... ---------------------------------------------------------------------- Handoko · 2017-08-03 12:18 In the previous post, I already mentioned I submitted/donated the code to Nuno. I let him check the code to make sure it conform to the 'standard'. After that, the code will be publicized. He said, the license of Furious Paladin may need to change (maybe to zlib/libpng) to be able to published as the demo on his website. I agree with him. If someone want to test my code, you can pm me. But only if you agree you do not make the code public. The code is 40 KB + 1.7 MB (image+audio), give my your email and I will send you them. Quote from: Lulu on August 03, 2017, 02:03:48 pm@Handoko, I can't found the source for your 'Furious Paladin' game. I'm interested how you differenciate the right control key from the left. One time I try to do it, I never succes... Here is the code of ProcessUserInput: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure ProcessUserInput;const  EscJustPressed:   Boolean = False;  SpaceJustPressed: Boolean = False;var  KeyState:    ALLEGRO_KEYBOARD_STATE;  isFaceRight: Boolean;  isMoveLeft:  Boolean;  isMoveRight: Boolean;  isAttack:    Boolean;  isBusy:      Boolean;begin   isBusy      := False;  isFaceRight := (Player.CurrentActivity = WalkR) or                 (Player.CurrentActivity = AttackR) or                 (Player.CurrentActivity = IdleR) or                 (Player.CurrentActivity = HitR);   // Check keyboard input  al_get_keyboard_state(KeyState);   // Esc  if al_key_down(KeyState, ALLEGRO_KEY_ESCAPE) then begin    if not(EscJustPressed) then      case AppState of        Playing: Start(Paused);        Lose, Win: Start(Intro1);        Intro1, Intro2, Paused: GameIsRunning := False;      end;    EscJustPressed := True;  end  else    EscJustPressed := False;   // Space  if al_key_down(KeyState, ALLEGRO_KEY_SPACE) then begin    if not(SpaceJustPressed) then      case AppState of        Intro1: Start(Intro2);        Intro2, Paused: Start(Playing);        Lose, Win: Start(Intro1);      end;    SpaceJustPressed := True;  end  else    SpaceJustPressed := False;   // Cannot do anything is being hit  if (Player.CurrentActivity = HitL) or (Player.CurrentActivity = HitR) then    Exit;   // Moving or attacking  isMoveLeft  := al_key_down(KeyState, ALLEGRO_KEY_LCTRL);  isMoveRight := al_key_down(KeyState, ALLEGRO_KEY_RCTRL);  if (isMoveLeft and isMoveRight) then begin   // Do attack and disable moving if left & right shift pressed    isAttack    := True;    isMoveLeft  := False;  isMoveRight := False;  end  else    isAttack := False;   // Move left  if isMoveLeft then begin    Player.CurrentActivity := WalkL;    isBusy := True;  end;  // Move right  if isMoveRight then begin    Player.CurrentActivity := WalkR;    isBusy := True;  end;  // Attack  if isAttack then begin    if isFaceRight then      Player.CurrentActivity := AttackR    else      Player.CurrentActivity := AttackL;    isBusy := True;  end;  // Idle  if not(isBusy) then begin    if isFaceRight then      Player.CurrentActivity := IdleR    else      Player.CurrentActivity := IdleL;  end; end; ---------------------------------------------------------------------- Lulu · 2017-08-03 12:30 Sorry, I did not understand that you use Allegro library. I thought you were using lazarus OnKeyDown, OnKeyUp callback in TForm to intercept keyboard. ---------------------------------------------------------------------- J-G · 2017-08-03 14:01 Additional reviews - in the light of code/instruction amendments. Educ'Race I've now 'Installed' OpenAL from the official site and eventually got Educ'Race to run but not without the error message "Cannot Load OpenGL 2.0 - no shader available" coming up twice and having to be dismissed. Graphics and Sound excellent but I found the response to mouse or keyboard input 'sluggish'. This meant that I had to 'correct' mouse cursor (big green arrow) movement a number of times before it settled on a menu option - - - EXCEPT left/right arrow keys which with the slightest touch slammed the car into the wall   This, of course, could just be the fact that I am not a 'gamer' glSlideShow Great to see multi-format options.  However, I still don't see the images after [Play], just white faders. Much more of an issue though, it took me many attempts to load more than one image, getting a SIGSEV error necessitating a re-start. This could be due to the size of image I attempted to load  - -  7Mb and 11.2Mb .TIF  along with 1.7Mb .PNG  - -  I never got as far as loading 5 images. ---------------------------------------------------------------------- lainz · 2017-08-03 14:11 @J-G I think you have problems with your graphics card. Since my project didn't open too. Maybe the graphics drivers or is somewhat old card that doesn't support OpenGL 2. ---------------------------------------------------------------------- Handoko · 2017-08-03 14:16 Did the white image issue happen on certain images only or all images? Can you provide me the 'problem' image? Did you test it on Win7 64-bit? I will tried to get a Win7 64-bit machine to test. For you information, the program needs OpenGL to run properly. I guess the hardware should at least supports OpenGL 1.2. It used only the very basic OpenGL functions, I believe I didn't use any functions of version 1.5 nor above. ---------------------------------------------------------------------- lainz · 2017-08-03 14:20 I have a win 7 PC and works fine Handoko. So it's a problem with the graphics card. ---------------------------------------------------------------------- Handoko · 2017-08-03 14:44 Thanks for test on Win7. I guess it's my fault. I found a bug in BGRAtoRGBA procedure and fixed it some weeks ago. But because I have several projects using this procedure, I forgot to apply the fix on glSlideshow. The previous one has memory leak issue, which may cause SIGSEV error. This one is the fixed version: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure BGRAtoRGBA(Image: TBitmap);var  Data: PRGBQuad;  Temp: Byte;  i : LongInt;begin  with Image do  begin    Data := Pointer(Image.RawImage.Data);    for i := 1 to Width * Height do    begin      Temp := Data^.rgbBlue;      Data^.rgbBlue := Data^.rgbRed;      Data^.rgbRed := Temp;      Inc(Data);    end;  end;end; Also, I almost forget to mention - if you inspect the code, you will know - glSlideshow only support 32-bit version (PRGBQuad) image formats. ---------------------------------------------------------------------- Lulu · 2017-08-03 14:59 @Handoko, I tested your OpenGl Slide Show on win10 64bits, it work great. However, if I load 5 images, sequence is N°1, N°2, N°3, N°5   N°4 is skipped at this point, if I reload another image on N°4, sequence become N°1, N°2, N°3, N°4  , now N°5 is skipped @J-G, when you launch Educ'Race, please go to the second screen where you hear the music and could you say me what is the Frame per seconds please ? you could see this information at the top left windows game ---------------------------------------------------------------------- bylaardt · 2017-08-03 15:10 about slideshow: @ handoko bug easy to fix: if you add 5 images, the 4th never show. is a great inspiration to create a component to rotate images, i love it. @J-G just update your bgracontrols and your bgrabitmap. ---------------------------------------------------------------------- bylaardt · 2017-08-03 15:11 ups, lulu was faster ---------------------------------------------------------------------- J-G · 2017-08-03 15:16 Quote from: Lulu on August 03, 2017, 04:59:51 pm@J-G, when you launch Educ'Race, please go to the second screen where you hear the music and could you say me what is the Frame per seconds please ? you could see this information at the top left windows gameThat is undoubtedly the 'issue' - - - even as a non-gamer I can appreciate that 1 to 7 FPS is hardly going to provide a good experience I did once see 11fps but over three runs of the music the general figure is between 3 & 5. The music is played at what I would consider 'normal' speed. ---------------------------------------------------------------------- Lulu · 2017-08-03 15:42 Thanks J-G for your informations, but I have no idea and no solution for this... This is the first time I publish a program here, I have no experience in cross platform programming. Even with the same OS, hardware can cause issue...  The people who wrote lazarus and freepascal are amazing ! ---------------------------------------------------------------------- J-G · 2017-08-03 16:09 Quote from: Handoko on August 03, 2017, 04:16:23 pmDid the white image issue happen on certain images only or all images? Can you provide me the 'problem' image? Did you test it on Win7 64-bit? I will tried to get a Win7 64-bit machine to test.Yes it was all images. Yes I have found an image which ALWAYS causes an error at line 108 of your latest BGRAtoRGBA Procedure : Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Temp := Data^.rgbBlue;and would be happy to send it to you......   I've looked at attaching it to an e-mail but can't see a means of doing that via the forum facility. Therefore I've put it on my web-site : www.crescentcomputing.co.uk/handoko Nothing special - a .TIF file of 797k but too large to 'attach' here. Quote from: HandokoFor your information, the program needs OpenGL to run properly. I guess the hardware should at least supports OpenGL 1.2. It used only the very basic OpenGL functions, I believe I didn't use any functions of version 1.5 nor above. My graphics card is an NVIDIA GeForce 9500 GT with 1Gb GDDR2 and the spec. tells me that it supports Open GL 2.1. I presume that I don't need to 'install' Open GL explicitly, I would anticipate that would be have been done when I installed the video drivers for the card - but since I have never needed to 'use' Open GL what would I know? ---------------------------------------------------------------------- lainz · 2017-08-03 16:50 Quote from: J-G on August 03, 2017, 06:09:21 pmMy graphics card is an NVIDIA GeForce 9500 GT with 1Gb GDDR2 and the spec. tells me that it supports Open GL 2.1. I presume that I don't need to 'install' Open GL explicitly, I would anticipate that would be have been done when I installed the video drivers for the card - but since I have never needed to 'use' Open GL what would I know? Usually with NVIDIA graphics cards, the Windows driver provided by Windows, or Windows Update doesn't come with latest OpenGL support. I always used to install the NVIDIA drivers from his website. I had that problem years ago, with my NVIDIA graphics card, exactly the same: with lazarus opengl applications not working, now I use the Intel HD Graphics that comes with the processor. ---------------------------------------------------------------------- Handoko · 2017-08-03 18:31 I have fixed 2 issues. Sorry I had not tested it properly. - Order error no #4 and #5 - Now support 24-bit TIFF format Quote from: Lulu on August 03, 2017, 04:59:51 pmHowever, if I load 5 images, sequence is N°1, N°2, N°3, N°5   N°4 is skipped at this point, if I reload another image on N°4, sequence become N°1, N°2, N°3, N°4  , now N°5 is skipped Fixed, just a typing mistake. Quote from: J-G on August 03, 2017, 06:09:21 pmYes I have found an image which ALWAYS causes an error at line 108 of your latest BGRAtoRGBA Procedure : Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Temp := Data^.rgbBlue; That happens because that image is 24-bit TIFF format. Now I added support for it by manually convert it to 32-bit before calling BGRAtoRGBA: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   // Convert 24-bit TIFF image to 32-bit  S := UpperCase(ExtractFileExt(OpenPictureDialog1.FileName));  if ((S = '.TIFF') or (S = '.TIF')) and (SlideImages[Index].PixelFormat = pf24bit) then    begin      TmpBitmap := TBitmap.Create;      TmpBitmap.PixelFormat := pf32bit;      TmpBitmap.Width := SlideImages[Index].Width;      TmpBitmap.Height := SlideImages[Index].Height;      Data32bit := Pointer(TmpBitmap.RawImage.Data);      Data24bit := Pointer(SlideImages[Index].RawImage.Data);      for y := 0 to (TmpBitmap.Height-1) do      begin        Data32bit := TmpBitmap.ScanLine[y];        Data24bit := SlideImages[Index].ScanLine[y];        for x := 1 to TmpBitmap.Width do        begin          Data32bit^.rgbRed   := Data24bit^.rgbtRed;        Data32bit^.rgbGreen := Data24bit^.rgbtGreen;          Data32bit^.rgbBlue  := Data24bit^.rgbtBlue;          Inc(Data24bit);        Inc(Data32bit);        end;      end;      SlideImages[Index].Assign(TmpBitmap);      TmpBitmap.Free;    end; ---------------------------------------------------------------------- circular · 2017-08-03 19:03 Hi everyone. I had no time for anything. So anyway I will vote for the Sudoku. I find it very classy. If it can help, here is a sudoku program I made that gives hints (or try to solve it) using human-like methods. This could be added to provide hints in the sudoko program already submitted. Regards ---------------------------------------------------------------------- J-G · 2017-08-04 10:13 Sorry, handoko, I've found another 'exception' that causes a SIGSEGV error but this time at line 109. What I am pleased about is that I think I can tell you exactly what the problem is - - - the .TIF image is ......... MONOCHROME ............   ie. 8-bit       and I don't see any reference in your code to 8-bit images. I'm assuming that you (or Open GL) interpret CMYK images as 32-bit and RGB images as 24-bit   ie. 8 bits per 'colour'. I could be completely wrong here but it is an interesting exercise - and exactly what this 'contest' is about. ---------------------------------------------------------------------- Handoko · 2017-08-04 10:45 Please send me the image, so I can inspect and test. ---------------------------------------------------------------------- User137 · 2017-08-04 11:08 Quote from: circular on August 03, 2017, 09:03:33 pmIf it can help, here is a sudoku program I made that gives hints (or try to solve it) using human-like methods. This could be added to provide hints in the sudoko program already submitted.Thanks, but it was just a matter of finding time    The TSudoku class has a results-array that is generated also. Application could as a hint show any one of those numbers that isn't already filled in place. But there is also 1 flaw in generation algorithm, that it doesn't verify yet if there only is only 1 solution when numbers are removed from original. So i left fill ratio to just 0.5 which makes so easy sudoku's i can always solve them myself. In difficulty ratio in general sudoku magazines from 1 to 5 stars (5 hardest), i would class these about 2 or 3. ---------------------------------------------------------------------- circular · 2017-08-04 12:04 @User137 do as you wish. I will just mention that with my algorithm, you get only suggestions that have only one possibility and gives a hint on the method to use : either it is constraint on a square, on a column or on a cell. ---------------------------------------------------------------------- J-G · 2017-08-04 16:52 Quote from: Handoko on August 04, 2017, 12:45:03 pmPlease send me the image, so I can inspect and test.Sorry for the delay - I had a customer to visit. The mono file is 'Snowflake BW.png' and is now on my web-site. ---------------------------------------------------------------------- Handoko · 2017-08-05 09:33 Quote from: J-G on August 04, 2017, 06:52:16 pmQuote from: Handoko on August 04, 2017, 12:45:03 pmPlease send me the image, so I can inspect and test.Sorry for the delay - I had a customer to visit. The mono file is 'Snowflake BW.png' and is now on my web-site. There is something I cannot explain. Try this code on your 'snowflake BW.png': Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TForm1.Button1Click(Sender: TObject);begin  Image1.Picture.LoadFromFile('snowflake BW.png');end; I tested the code above using Lazarus 1.6.4 Gtk2 on Linux 64-bit. It quit immediately without showing any error. I tried to use GIMP to re- save the image (File > Overwrite snowflake BW.png) without modifying anything. The re-saved file can be open using the code above. Original size of 'snowflake BW.png' : 33396 bytes Re-saved size of 'snowflake BW.png' : 40228 bytes My guess is maybe that mono png file format is not supported by TPicture or maybe that file is using non-standard format. Or maybe there is a bug on Linux Gt2 only? Can anyone test it on other OSes? So, because the original 'snowflake BW.png' cannot be opened using TImage.Picture.LoadFromFile, nothing I can do now. ---------------------------------------------------------------------- Lulu · 2017-08-05 10:52 @Handoko I tested a simple project with  TImage.Picture.LoadFromFile('snowflake BW.png') It work fine on my computer, the image of the flake appears on the screen. Windows 10, Lazarus 1.6.4 ---------------------------------------------------------------------- J-G · 2017-08-05 14:47 Quote from: Handoko on August 05, 2017, 11:33:29 amThere is something I cannot explain. Try this code on your 'snowflake BW.png': Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TForm1.Button1Click(Sender: TObject);begin  Image1.Picture.LoadFromFile('snowflake BW.png');end; I tested the code above using Lazarus 1.6.4 Gtk2 on Linux 64-bit. It quit immediately without showing any error. I tried to use GIMP to re- save the image (File > Overwrite snowflake BW.png) without modifying anything. The re-saved file can be open using the code above. Original size of 'snowflake BW.png' : 33396 bytes Re-saved size of 'snowflake BW.png' : 40228 bytesThe ORIGINAL file was 40228 bytes   -  Curiouser and curiouser !!  -  unless you have accidentally transposed the two figures. It opens in Photoshop/CorelDRAW! without problem and of course displays in the preview pane of Windows Explorer. Quote from: HandokoMy guess is maybe that mono png file format is not supported by TPicture or maybe that file is using non-standard format. Or maybe there is a bug on Linux Gt2 only? Can anyone test it on other OSes? So, because the original 'snowflake BW.png' cannot be opened using TImage.Picture.LoadFromFile, nothing I can do now. I tried inserting that line of code at the start of your TForm1.BackgroundClick Procedure with the intention of 'stepping through'  - -  having declared   Image1 : TImage   locally. As soon as it tries to execute that line it throws a SIGSEGV error pointing to Line 770 in picture.inc. I've done nothing with the image regarding the format, it's a straight Mode change in Photoshop, removing the colour information and then converting the 'Grey Scale' to 'Bitmap' - but it was saved with 'Interleave' on. I've now re-saved with  interleaving = none  and the size is 30245 bytes  -  so that is a difference  -  the new file is on my web-site if you want to test that, though it threw the same error. ---------------------------------------------------------------------- Akira1364 · 2017-08-05 15:27 One recommendation I might make for Handoko's Slideshow project that would immediately solve all image-format issues is to simply use BGRABitmap! The TBGRABitmap class is capable of loading pretty much any image file type that you'd ever want to, and it exposes a "Data" property that can be used to load it into OpenGL. Here's a modified version of the texture creation routine I've been using in DeleD, that loads an image (of any format supported by BGRABitmap) from file and returns an OpenGL handle that you can then bind with glBindTexture. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i function CreateOpenGLTexture(FileName: String; WrapMode: Cardinal = GL_REPEAT; MinLODBias: Single = 0;  MaxLODBias: Single = 0; AnisotropyLevel: Single = 0): Cardinal;var  TextureHandle: Cardinal;  TempBitmap: TBGRABitmap;begin  TempBitmap := TBGRABitmap.Create(FileName);  glGenTextures(1, @TextureHandle);  glBindTexture(GL_TEXTURE_2D, TextureHandle);  glTexParameterI(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, WrapMode);  glTexParameterI(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, WrapMode);  glTexParameterF(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, MinLODBias);  glTexParameterF(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, MaxLODBias);  glTexParameterI(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);  glTexParameterI(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);  if AnisotropyLevel <> 0 then    glTexParameterF(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, AnisotropyLevel);  glTexParameterI(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, TempBitmap.Width, TempBitmap.Height, 0, GL_BGRA, GL_UNSIGNED_BYTE, TempBitmap.Data);  glBindTexture(GL_TEXTURE_2D, 0);  TempBitmap.Free;  Result := TextureHandle;end; ---------------------------------------------------------------------- Handoko · 2017-08-05 15:30 Quote from: J-G on August 05, 2017, 04:47:15 pmQuote from: Handoko on August 05, 2017, 11:33:29 amOriginal size of 'snowflake BW.png' : 33396 bytes Re-saved size of 'snowflake BW.png' : 40228 bytesThe ORIGINAL file was 40228 bytes   -  Curiouser and curiouser !!  -  unless you have accidentally transposed the two figures. Sorry my mistake. I cannot open both your 'snowflake BW NonInt.png' and 'snowflake BW.png' using TImage.Picture.LoadFromFile on my Linux64 computer. I can open them using GIMP and my Linux built-in image viewer. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i unit Unit1; {$mode objfpc}{$H+} interface uses  Forms, Dialogs, ExtCtrls, StdCtrls, ExtDlgs; type   { TForm1 }   TForm1 = class(TForm)    Button1: TButton;    Image1: TImage;    OpenPictureDialog1: TOpenPictureDialog;    procedure Button1Click(Sender: TObject);  end; var  Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject);begin  OpenPictureDialog1.Execute;  Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);  Caption := OpenPictureDialog1.FileName;end; end. If I open 'snowflake BW NonInt.png' or 'snowflake BW.png', I can see the titlebar changed to the file name. But nothing happened, sometimes the program just exit immediately. But if I open the image saved using GIMP, it works correctly. Can anyone please download loadimage.zip and test it? Quote from: Akira1364 on August 05, 2017, 05:27:48 pmOne recommendation I might make for Handoko's Slideshow project that would immediately solve all image-format issues is to simply use BGRABitmap! I ever thought about it. But now there is mystery needed to be solved. ---------------------------------------------------------------------- J-G · 2017-08-05 15:33 I've now made time to check other 'Monochrome' images - or more precisely 8 bit Black/White images (rather than 'GreyScale') and every one fails.  Most with a SIGSEGV but some with 'Offset Error'. 'GreyScale' are OK. I've put a few on my web-site for testing. ---------------------------------------------------------------------- lainz · 2017-08-05 15:41 Quote from: Akira1364 on August 05, 2017, 05:27:48 pmOne recommendation I might make for Handoko's Slideshow project that would immediately solve all image-format issues is to simply use BGRABitmap! The TBGRABitmap class is capable of loading pretty much any image file type that you'd ever want to... That's true. I remember some old days when I provide Circular all the possible image formats of .psd files, and thanks to his work every single one was loaded fine with LazPaint. ---------------------------------------------------------------------- Handoko · 2017-08-05 15:58 At the beginning I want to use just Lazarus' built-in libraries/units so users can easily compile and run the code. And you know, we hear a lot of users have problem installing TBGRABitmap. Well, I think I should not reinvent the wheel. I will use BGRABitmap in glSlideshow. @J-G I test your images, only 'Card Background.tif' is able to open using the LoadImage code: ✗ 3-4.tif ✗ BSL Logo.tif ✔ Card Background.tif ✗ snowflake BW NonInt.png ✗ snowflake BW.png ✗ vonEssen.tif Tested on Lazarus 1.6.4 Gt2 Ubuntu Mate 16.10. If it failed, it show no error and sometimes it exit immediately. ---------------------------------------------------------------------- lainz · 2017-08-05 17:31 I never had problems installing BGRABitmap on released lazarus and fpc both in Windows and Linux, the problems comes when using untested trunk builds of fpc and lazarus. ---------------------------------------------------------------------- J-G · 2017-08-05 18:57 Quote from: Handoko on August 05, 2017, 05:58:44 pm@J-G I test your images, only 'Card Background.tif' is able to open using the LoadImage code: ✗ 3-4.tif ✗ BSL Logo.tif ✔ Card Background.tif ✗ snowflake BW NonInt.png ✗ snowflake BW.png ✗ vonEssen.tif Tested on Lazarus 1.6.4 Gt2 Ubuntu Mate 16.10. If it failed, it show no error and sometimes it exit immediately. I'm pleased to find that you have the same problems that I do - at least that means that my system isn't the culprit !! The Card Background is the only RGB (24bit) image and of course you had already solved the 32/24 bit issue. ---------------------------------------------------------------------- Akira1364 · 2017-08-06 23:05 Had some free time today, so just for fun I did a bit of a rewrite of Handoko's Slideshow project (using BGRABitmap like I had suggested, along with some other changes to the rendering code). Obviously this isn't a contest entry or anything, moreso just something I did as an example/learning template for others. I've attached a zip file that includes the changed files/forms. You'll need to add BGRABitmap to the projects requirements in order to use them, of course. EDIT: Forgot to change the OpenDialog to be able to recognize non-JPEG images. Ended up just making it an OpenPictureDialog so I wouldn't have to type out every file extension manually, and re-uploaded the zip file. EDIT (again): Realized I had broken the timing code. Fixed it. Re- uploaded. Everything should work as intended now. Don't drink and code, kids! EDIT, Part III (Bigger And Editier): posted this below but will post it up here as well. If you're on Windows neither of the following two things are necessary, but if you're on Linux, change line 30 of "uniGraphics.pas" to look like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i {$IFDEF WINDOWS}  TexCoords: array[0..7] of SmallInt = (0, -1, 1, -1, 1, 0, 0, 0);{$ELSE}  TexCoords: array[0..7] of SmallInt = (0, 1, 1, 1, 1, 0, 0, 0);{$ENDIF} And at around line 415 of same unit, in the "CreateOpenGLTexture" function, change it to look like: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i {$IFDEF WINDOWS}  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, TempBitmap.Width, TempBitmap.Height, 0, GL_BGRA, GL_UNSIGNED_BYTE, TempBitmap.Data);{$ELSE}  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, TempBitmap.Width, TempBitmap.Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, TempBitmap.Data);{$ENDIF} Edit 4/Update: Added the above defines directly to the source. Also completely did away with the use of the fixed-function OpenGL matrix transformation API, replacing it with two "advanced record" types: TMatrix, which can Scale/Rotate/Translate/Multiply itself, and TCamera, which uses a TMatrix internally and uploads the final transformed data from it directly with glLoadMatrixF. Lastly, I changed the array of TBGRABitmaps to simply be an array of filename strings, so that they're only in memory temporarily when being loaded into OpenGL and assigned to the TBitButton glyphs. I've re-attached an updated version of the zip file with all of these changes, of course. Probably done playing around with the source for now, although I might re-visit it later. Edit 5: Made a few more refinements/fixes/changes... All of the rendering functionality is now wrapped in advanced records (TSlideShowRenderer and TSlideShowConstants, as well as the previously mentioned TMatrix and TCamera) to allow for a nice object-oriented user/programmer experience. I also added RibbonRight and RibbonDown transitions, as it seemed like something was missing with only RibbonLeft and RibbonUp. Re-uploaded the zip file. Really done now! Edit 6: Finished up a rough/naive take at merging the features from Handoko's latest version with my modified one. It includes all of the transition types as well as the same ability to load an infinite number of slides. I didn't get around to adapting the more extraneous features such as the slide re-ordering yet, though. Also, the TOpenGLControl now has a TSplitter on both the side and bottom, so you can resize it freely within the form. New zip file is attached. Edit 7: My version now has all of the same right-click popup-menu- based slide reordering and removal functionality that Handoko's last update did. More interestingly/importantly, I also implemented the ability to save and load your slide/transition lineups to and from file, which Handoko had said was an intended feature. This is accessed through a standard "File" menu at the top of the form. Apart from that, I reworked the way I implemented some of the transitions a little bit as I realized I had caused weird scaling problems in certain edge cases. Again, I've attached a new zip file. ---------------------------------------------------------------------- Handoko · 2017-08-07 02:29 Yes, it works. Thank you for the improvement. But it did not work correctly. The image flipped upside down. ---------------------------------------------------------------------- Akira1364 · 2017-08-07 02:43 Can you upload the image that was displaying upside-down? Would be interested in testing it... by default BGRA-format images will in fact display upside down when loaded into OpenGL, so I simply inverted your original texture coordinates (which were presumably intended for RGBA), and that was enough to have them display JPEG, PNG, BMP, TGA, GIF and other files correctly for me (on Windows, at least.) Obviously you're on Linux, so there might be something additional going on there that isn't going on on Windows. Either way it's probably an easy fix! ---------------------------------------------------------------------- Handoko · 2017-08-07 02:56 I tested several images (*.tif, png, jpg), all of them are upside down. Also the color blue became pale orange as you can see the logo of Lazarus below. Tested on Lazarus 1.6.4 64-bit BGRABitmap 9.5 Ubuntu Mate 16.10. Previously, my code called BGRAtoRGBA procedure to fix the color issue. ---------------------------------------------------------------------- Akira1364 · 2017-08-07 02:59 Figured it out. It seems on Linux, BGRABitmap invokes its own built-in bit-reordering method by default when you load images. At line 30 of "uniGraphics.pas", change it to look like the following: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i {$IFDEF WINDOWS}  TexCoords: array[0..7] of SmallInt = (0, -1, 1, -1, 1, 0, 0, 0);{$ELSE}  TexCoords: array[0..7] of SmallInt = (0, 1, 1, 1, 1, 0, 0, 0);{$ENDIF} And at roughly line 415 of the same unit, in the "CreateOpenGLTexture" function, change it to: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i {$IFDEF WINDOWS}  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, TempBitmap.Width, TempBitmap.Height, 0, GL_BGRA, GL_UNSIGNED_BYTE, TempBitmap.Data);{$ELSE}  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, TempBitmap.Width, TempBitmap.Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, TempBitmap.Data);{$ENDIF} ---------------------------------------------------------------------- lainz · 2017-08-07 14:42 sudoku, relogio & duplo6 are the projects more voted (2 votes each). We need more votes to define this! ---------------------------------------------------------------------- Eugene Loza · 2017-08-07 14:57 I wish I could give two votes, that'd be "sudoku" by user137 "furiouspaladin" by handoko still can't decide which one I liked better... It's so hard to make "one-in-all-out" vote... Thou I couldn't test "starsfieldshooter" by turrican (can't run) "educrace" by lulu yet. ---------------------------------------------------------------------- lainz · 2017-08-07 15:00 Quote from: Eugene Loza on August 07, 2017, 04:57:07 pmI wish I could give two votes, that'd be "sudoku" by user137 "furiouspaladin" by handoko still can't decide which one I liked better... It's so hard to make "one-in-all-out" vote... Thou I couldn't test "starsfieldshooter" by turrican (can't run) "educrace" by lulu yet. That's not possible now, I can't edit the poll to accept more than one vote right now, that options was available only when I created the poll. ---------------------------------------------------------------------- bylaardt · 2017-08-07 15:47 Quote from: lainz on August 07, 2017, 04:42:44 pmsudoku, relogio & duplo6 are the projects more voted (2 votes each). We need more votes to define this! I haven't voted yet. Deadline is september 21, right? glslideshow and educrace still evolving. Give them some time to finish. Both are nice projects. ---------------------------------------------------------------------- Akira1364 · 2017-08-07 20:47 I attached a new zip file to my other post with further updated/refined/fixed versions of the units I modified in Handoko's glSlideshow, if anyone's interested. Probably the last one for now. ---------------------------------------------------------------------- Lulu · 2017-08-08 19:25 Hello, I think the game Educ Race will not evolve anymore because I do not have the knowledge to make it multi-platform. However, it uses OpenAL which is a library supported by lazarus, TOpenGLControl, a component of lazarus and BGRABitmap. Did anyone try to compile Educ Race on Linux or Mac please ? Remind that you need OpenAL installed on your computer,  http://www.openal.org/ TOpenGLControl and BGRABitmap package installed on Lazarus. ---------------------------------------------------------------------- Akira1364 · 2017-08-08 19:52 What was the cross-platform issue you were having, exactly? Was it just that people didn't have OpenAL binaries on non-Windows platforms? Here's 32 and 64 bit ".so" builds from CodeTyphon's libraries folder, if that's all it was... 32-bit: https://uploadfiles.io/mggx4 64-bit: https://uploadfiles.io/z6ksm ---------------------------------------------------------------------- Lulu · 2017-08-08 20:17 Thanks Akira for the links. I don't know the cross platform issue because I never try to compile Educ Race on other OS than Windows. I must confess that I never use other OS than Windows... ---------------------------------------------------------------------- Thaddy · 2017-08-08 21:03 I can't vote if the proper links are not added... 18 pages.... I do know I have a favorite, but am not reading everything back.. ---------------------------------------------------------------------- mica · 2017-08-08 23:22 only one Vote for this good projects .... its hard ---------------------------------------------------------------------- molly · 2017-08-08 23:26 Quote from: Thaddy on August 08, 2017, 11:03:38 pmI can't vote if the proper links are not added... 18 pages.... I do know I have a favorite, but am not reading everything back.. Unless i interpreted that wrongly: I used only a single link, this one. Unfortunately i currently lack time to give everything a good spin. Quote from: mica on August 09, 2017, 01:22:51 amonly one Vote for this good projects .... its hard Not only that, i would even consider it a bit unfair competition. If this turns out to be a annual competition with multiple competitors (or contributions) then it would imho be more fair to have different categories for which points could be awarded. How to decide between a project that uses non or hardly any motion graphics but uses a graphics design that is absolutely stunning to the eye and a fully implemented game f.e. a shooter with multiple attack waves, music, sound-fx, hiscore table etc. ? Some projects are perhaps excellent examples on how to use and/or apply certain techniques and or programming styles, while another project perhaps uses dreadful spaghetti-like code that should not really be considered a good example. In past years the number of contributed projects was not very high in numbers, so awarding projects on different aspects was not very practical but this year there is quite a number of contributed projects and which could perhaps be awarded points for different categories. Perhaps something to consider for the future, in case the number of entries exceeds a certain value. 2 cents or perhaps even less. ---------------------------------------------------------------------- lainz · 2017-08-09 00:55 The contest is not over and any suggestion can be used to this contest. We can have a winner by the poll like that was the first idea I did and we can have the categories and say one winner by category, or 1st, 2nd, and 3rd place, and honorific mentions. But that votes should be as comments by each vote. Say a vote by category. We can have: - games (ball, mariocronch, educrace, duplo6, sudoku, furiouspaladin) - clocks (relogio, steampunkclock, pocket watch) - effects (glslideshow, movingdots, movingdotsgl, starsfieldshooter) Of course some of these can't be called exactly games or effects, but is what I build in some seconds, if a better category layout is proposed I will check it out. Edit: about the quality of each project, is of course a point of view, different from the category. That goes for another contest while we prevent of using bitmaps or stunning graphics. Thats for each one to decide what is voting, if a .png or a sourcecode, or none of these and just likes the project by anything else. For that there's the possibility to inspect the code and run the executables. ---------------------------------------------------------------------- molly · 2017-08-10 02:24 @lainz: Thank you for your feedback and taking my suggestion into consideration. Indeed the first goal of my post was to be able to have multiple winners such as one winner for each category. At least it would give the contributors some kind of indication on how good their entry competed. e.g. so that they can think to themselves: ok, i did not ended first in this category so next time i would have to make a better effort or perhaps pick another (new) category. I think your choice of categories is already a very good one that mostly fits existing contributions. The slideshower is perhaps a bit more difficult to categorize as well as some of the entries that are listed as game but, you have to start somewhere. We can't all be winners just by 'inventing' a new category. Since you initiated/organized you are more than welcome to make a choice. You could always opt for allowing contributors to pick a category in which they would like to contest. Indeed, the quality of a production is always subject to personal preference. But so is deciding which one is your favourite  My idea there was more meant to be able to give some feedback about a production so that a contributor would be able to improve on his/her skills. That could of course also be done outside the voting system. In that regards i am not too familiar with the available message-board voting plugins. But you are also correct that it is for funs. Some examples can simply be put together in matter of a few seconds, and so it should be as this 'event' was initially meant as a (simple) showcase. ---------------------------------------------------------------------- User137 · 2017-08-10 10:00 The binaries post is now buried to page 13 it seems, maybe they could be included in the first post? https://github.com/lazarusccr/GraphicsContest/releases/tag/2017 ---------------------------------------------------------------------- lainz · 2017-08-10 13:00 Quote from: molly on August 10, 2017, 04:24:17 am@lainz: Thank you for your feedback and taking my suggestion into consideration. Thanks. I will keep that categories and anyone interested can vote, one vote for category. Quote from: User137 on August 10, 2017, 12:00:09 pmThe binaries post is now buried to page 13 it seems, maybe they could be included in the first post? https://github.com/lazarusccr/GraphicsContest/releases/tag/2017 Sure. ---------------------------------------------------------------------- valdir.marcos · 2017-08-10 13:57 ball_by_raw - Even when I click the ball (shrinking the screen), neither the game shows any message nor it closes the program; bgragraphics_by_j-g_(pocketwatch) - It's beautiful; duplo6_by_bylaardt - I liked it very much, but sometimes the number 5 does not paint correctly; - I missed a message that I have to pass because I do not have a matching piece; Furious Paladin RC3-win\FuriousPaladin.exe - It does not open on Windows 7 Professional 64-bit; - A message says that is because of an internet related problem; glslideshow_by_handoko - I really liked it; - Can it be a component for Lazarus? Maybe on OPM? mariocronch_by_ericktux - I liked it; - I missed the score and death of the game; movingdots_by_lainz - Interesting; movingdotsgl_by_lainz - Interesting; relogio_by_bylaardt - Spectacular; - It took a while to start; starsfieldshooter_by_turrican - Amazing, but it did not close on ESC or on a limited time; steampunkclock_by_bylaardt - Impressive; sudoku_by_user137 - Very beautiful; - It took a while to start; As I can only have one vote, my vote goes to: duplo6_by_bylaardt Next year, if possible, it would be a good idea to divide votes on categories. ---------------------------------------------------------------------- lainz · 2017-08-10 14:41 Quote from: valdir.marcos on August 10, 2017, 03:57:31 pmAs I can only have one vote, my vote goes to: duplo6_by_bylaardt Next year, if possible, it would be a good idea to divide votes on categories. Thanks for your vote. That vote should go in the poll (if not already). And you can vote by category! - games (ball, mariocronch, educrace, duplo6, sudoku, furiouspaladin) - clocks (relogio, steampunkclock, pocket watch) - effects (glslideshow, movingdots, movingdotsgl, starsfieldshooter) Just choose one by category. Then comment here, your vote will be taken into consideration. Maybe next year we can create a web application to vote by category, but the problem is how to control one vote by lazarus user... or we should create a new vote post by category and have independent poll in each one? ---------------------------------------------------------------------- Lulu · 2017-08-10 20:44 Hello my Educ Race game don't appear in binary and source zip ---------------------------------------------------------------------- lainz · 2017-08-10 21:47 Quote from: Lulu on August 10, 2017, 10:44:21 pmHello my Educ Race game don't appear in binary and source zip  Done. The first time I ran your game, it did not run due to antivirus check (AVG), then I forget it. Nice game. ---------------------------------------------------------------------- lainz · 2017-08-10 21:52 Well I will vote: Best Game: educ race Best Clock: pocket watch Best Effect: glslideshow And in the poll I voted furious paladin, for best project of 2017. Quote from: lainz on January 03, 2017, 03:24:09 pmIt's time to vote! Official contest 2017 repository: https://github.com/lazarusccr/GraphicsContest Download 2017 binaries: https://github.com/lazarusccr/GraphicsContest/releases/tag/2017 Quote from: lainz on August 10, 2017, 04:41:49 pmAnd you can vote by category! - games (ball, mariocronch, educrace, duplo6, sudoku, furiouspaladin) - clocks (relogio, steampunkclock, pocket watch) - effects (glslideshow, movingdots, movingdotsgl, starsfieldshooter) Just choose one by category. Then comment here, your vote will be taken into consideration. ---------------------------------------------------------------------- valdir.marcos · 2017-08-10 22:08 Quote from: lainz on August 10, 2017, 04:41:49 pmAnd you can vote by category! - games (ball, mariocronch, educrace, duplo6, sudoku, furiouspaladin) - clocks (relogio, steampunkclock, pocket watch) - effects (glslideshow, movingdots, movingdotsgl, starsfieldshooter) Just choose one by category. Then comment here, your vote will be taken into consideration. Here my votes go: - games (duplo6) - clocks (relogio) - effects (glslideshow) Thanks. ---------------------------------------------------------------------- Lulu · 2017-08-11 09:18 Here my vote: in the pool I voted Relogio and by category: - games  duplo6 - clocks  relogio - effects  glSlideShow Thanks for this context, it's great idea ! ---------------------------------------------------------------------- Josh · 2017-08-11 09:29 My Vote Best Game - EducRace Effects = glSlideShow Clocks = PocketWatch ---------------------------------------------------------------------- J-G · 2017-08-11 09:55 Best Game: Duplo6 Best Clock: pocket watch Best Effect: movingdots Naturally, I must think that my clock entry is 'best'      but I don't think that I should be allowed to cast that vote so 'SteamPunk' should get it. Taking account of all the 'issues' I encountered, (mostly due to my system constraints) my single Poll vote still goes to Duplo6. ---------------------------------------------------------------------- bylaardt · 2017-08-11 14:24 Quote from: valdir.marcos on August 10, 2017, 03:57:31 pmduplo6_by_bylaardt - I liked it very much, but sometimes the number 5 does not paint correctly; - I missed a message that I have to pass because I do not have a matching piece; about message, i use diferent sounds when you play and when not. But by the contest link "toc.wav" are missing. you can find it on https://github.com/bylaardt/duplo6 use right click menu to turn sounds on/of. If you are compiling then be sure you are using the bgrabitmap-9.5( or above? ) Quote from: J-G on August 11, 2017, 11:55:11 amNaturally, I must think that my clock entry is 'best'      but I don't think that I should be allowed to cast that vote so 'SteamPunk' should get it. It's the best, and my inspiration to make steampunk. By category: Best Game: Sudoku (sorry, but i love board games and puzzles)  Best Clock: pocket watch (Nothing new that could improve my skills in Relogio ou StemPunkClock ) Best Effect: movingdots Best Original Idea: FuriousPaladin Best inspiration to create a new component: glslideshow PS: I have provided "relogio" with the intention of having a start for this contest. It surprise me have a category just for watches. ---------------------------------------------------------------------- Akira1364 · 2017-08-12 21:01 Made one final set of changes to the files from Handoko's glSlideShow, if anyone reading this is one of the people who've been downloading them. Details and a new zip file are in my original post, like before. ---------------------------------------------------------------------- J-G · 2017-08-13 10:14 Quote from: Lulu on August 03, 2017, 05:42:26 pmThanks J-G for your information, but I have no idea and no solution for this..@Lulu  -  I have now found a solution  -  well at least I now show a frame rate which is 'sensible' - anything between 70+ and 120 - didn't test too long - and I have been able to 'play' Educ'Race - finding oil-slicks and knocking motor-cyclists off the track     If I were a gamer I might actually like it This is after updating my video driver to handle Open GL and finally being able to install 'Blender'  - only took me a week  (not that I can really use it yet!). I thought that that might also solve the issues I have with Sudoku but sadly not - that still just displays what I assume is a 'splash' screen after complaining that it can't find 'tile.png'. Furious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folder, and Star Field Shooter complains about xinput1_3.dll. ---------------------------------------------------------------------- Handoko · 2017-08-13 11:09 Quote from: J-G on August 13, 2017, 12:14:47 pmFurious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folderOn which Windows?  Win7 32-bit or Win7 64-bit? I'll try get myself a Win7 machine for testing. ---------------------------------------------------------------------- J-G · 2017-08-13 11:10 Quote from: Akira1364 on August 12, 2017, 11:01:45 pmMade one final set of changes to the files from Handoko's glSlideShow, if anyone reading this is one of the people who've been downloading them. Details and a new zip file are in my original post, like before.Since updating my video driver I can now see the images   -  result. Because I am still using BGRABitmap < 9.5 I can't re-compile the latest version but at least I can now appreciate what the program does AND I can confirm that the original program does handle 8 bit  (B & W) .JPG images. ---------------------------------------------------------------------- J-G · 2017-08-13 11:15 Quote from: Handoko on August 13, 2017, 01:09:15 pmQuote from: J-G on August 13, 2017, 12:14:47 pmFurious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folderOn which Windows?  Win7 32-bit or Win7 64-bit? I'll try get myself a Win7 machine for testing.Win 7 Ultimate 64 bit ---------------------------------------------------------------------- User137 · 2017-08-13 13:26 Quote from: J-G on August 13, 2017, 12:14:47 pmI thought that that might also solve the issues I have with Sudoku but sadly not - that still just displays what I assume is a 'splash' screen after complaining that it can't find 'tile.png'. The source code will use either \ or / for data path depending on OS during compilation. So i don't know how you are trying it. Even if it was using | symbol, wouldn't the check be made during compilation too? There is a data folder, correct? ---------------------------------------------------------------------- lainz · 2017-08-13 14:39 Quote from: J-G on August 13, 2017, 12:14:47 pmQuote from: Lulu on August 03, 2017, 05:42:26 pmThanks J-G for your information, but I have no idea and no solution for this..@Lulu  -  I have now found a solution  -  well at least I now show a frame rate which is 'sensible' - anything between 70+ and 120 - didn't test too long - and I have been able to 'play' Educ'Race - finding oil-slicks and knocking motor- cyclists off the track     If I were a gamer I might actually like it This is after updating my video driver to handle Open GL and finally being able to install 'Blender'  - only took me a week  (not that I can really use it yet!). I thought that that might also solve the issues I have with Sudoku but sadly not - that still just displays what I assume is a 'splash' screen after complaining that it can't find 'tile.png'. Furious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folder, and Star Field Shooter complains about xinput1_3.dll. Try movingdotsgl it should work now with your drivers updated. xinput is DirectX, you need to install this: https://www.microsoft.com/en-us/download/details.aspx?id=35 allegro should be of the same bitness of the compiled exe. if the exe is 32 bit the dll should be 32 bit. and must be of the same version. try running it from the command line to see if anything else is missing. there is a data folder, and there is a file called tile.png, just check that. The poll: Currently we have 3 projects competing with 4 votes each! ---------------------------------------------------------------------- J-G · 2017-08-13 22:52 Quote from: lainz on August 13, 2017, 04:39:07 pmTry movingdotsgl it should work now with your drivers updated.Sorry No - still a full white screen and an Error message Quote from: lainzxinput is DirectX, you need to install this: https://www.microsoft.com/en-us/download/details.aspx?id=35I have installed that - after some Micky$oft hassle - I don't want to be offered all kinds of MS rubbish    -  fortunately I'm savvey enough to find the boxes to un-tick !!   but now it gives me an error loading ZenGL    so I'll give that best. Quote from: lainzallegro should be of the same bitness of the compiled exe. if the exe is 32 bit the dll should be 32 bit. and must be of the same version. try running it from the command line to see if anything else is missing.No joy from the command line. I have to assume that the version (bitness) of the .dll supplied is the same as the .exe Quote from: lainzthere is a data folder, and there is a file called tile.png, just check that.There is now ... and it is populated with the 5 necessary files ...  so I can run Sudoku - it's a pity I can't play it ---------------------------------------------------------------------- lainz · 2017-08-13 23:03 I dont have a nvidia card to test. Or knowledge to see how much video card usage it does. Too much problems revealed in this fun contest! ---------------------------------------------------------------------- J-G · 2017-08-14 09:59 Quote from: lainz on August 14, 2017, 01:03:46 amI don't have a nVidia card to test. Or knowledge to see how much video card usage it does. Too many problems revealed in this fun contest! There are just so many 'Standards' available The basic object of the contest - to improve the knowledge of participants  -  has been well served though.  I am certainly wiser. ---------------------------------------------------------------------- Thaddy · 2017-08-14 10:21 Quote from: J-G on August 14, 2017, 11:59:36 amThere are just so many 'Standards' available No, for the drums alone.. And I need two at least two for the voice and guitars.... Same with "other" standards.... ---------------------------------------------------------------------- lainz · 2017-08-14 14:29 OpenGL or DirectX: both failed BTW, missing libraries is just a bad readme. But crashing.. ---------------------------------------------------------------------- Handoko · 2017-08-16 14:47 Quote from: J-G on August 13, 2017, 12:14:47 pmFurious Paladin still complains that I don't have allegro-5.2.dll even though that is in the .exe folder, I managed to find a Win7 64-bit computer today for testing. When starting Furious Paladin, an antivirus said the program may cause harm on the computer. I simply click the allow button and it ran perfectly. Quote from: J-G on August 13, 2017, 01:10:49 pmBecause I am still using BGRABitmap < 9.5 I can't re-compile the latest version but at least I can now appreciate what the program does AND I can confirm that the original program does handle 8 bit  (B & W) .JPG images. The newer version of glSlideshow will not use BGRABitmap. I found a better solution, tested, and so far it passed my tests. The 'better' I mean is easier to compile, no need to download/install any new package. Please give me some days, it has many bug fixes, minor improvements and better UI. After I make sure all of them working correctly, I will release it. ---------------------------------------------------------------------- lainz · 2017-08-16 21:13 I made the official logo (too late?) the race is almost over and the competition right now is between 2 users: bylaardt and user137, with 5 votes each one. Two games "duplo6" and "sudoku" are the most voted this year. We never had too much entries like this year, because that you can also vote your favourite like a lot of users did in the latest pages, that votes will be counted the last day. And the last day is the question, we wait to finish this month or we can close it right now with 2 winners? ---------------------------------------------------------------------- Handoko · 2017-08-17 20:49 glSlideshow version 0.95 Features: - Main transitions: SlideIn, Wipe, Blind, Fade, Scale, Matrix, Ribbon, Rotate - Total 23 transitions + random - Support .bmp, .cur, .icns, .ico, .gif, .jpeg/jpg, .png, .tif/tiff, .tga - Low hardware requirement, only OpenGL version 1.2 Limitations: - No full screen preview, no sound, no text support - Cannot save project,  cannot export to avi/mpeg Changes on version 0.95: - New transitions: Wipe, Blind, Matrix, Random - Some cosmetic improvements - Let OpenGL to handle BGRA images (Thanks Akira1364) - Better support for PNG and TIFF images (Thanks J-G) - Replace TOpenPictureDialog with TOpenDialog - Support more than 10000 slide count - The form now is resizeable - Slides can be removed and reorder - Adjustable delay time before changing slides - Smoother movement for slow animation - Support 4x multisampling - Fix thumbnail preview issue - Fix sluggishness when animating large images More info can be found on Readme.txt. It now can handle graphics files better. TImage cannot fully support .bmp, .png, .tga, .tif/tiff files, so it uses FCL-Image when opening those files. Tested and passed on all the samples provided by J-G. http://wiki.freepascal.org/fcl-image Nothing wrong with BGRABitmap but I want more people can easily compile and test the code. FCL-Image library is included on Lazarus default installation. And I carefully chose the OpenGL commands used in the code. I have not tested but any hardware that support OpenGL version 1.2 should be able to run the program. On Windows system, you have to make sure the VGA driver is installed properly. To be able to compile this code on Linux, your computer needs libgl1-mesa-dev library installed. It's no longer use TOpenPictureDialog when opening file, because it will crash on some 'rare' graphics file. I haven't tested but it should be able to open more than 10k slides, because it uses TFPList as the container. Previously, it used TTimer to slow down the animation. But the movement was noticeable ugly if the frame rate is below 20fps. Now frame rate is fixed on ± 62 fps because it now increases/decreases the total frames per slide when changing the speed. I noticed some slow down when animating extra large images. To solve it, it will automatically scale them down to the size of user monitor's resolution. I should mention Akira1364 has done many improvements on the code (using BGRABitmap, Advance Record, Matrix Transformation, Vertex Array). But because Vertex Array is only supported on OpenGL 3.0 or above and also I am not good on Maxtrix, so I didn't adopt them. If you're interested to see the code that using more modern version OpenGL, download here: https://forum.lazarus.freepascal.org/index.php/topic,35313.msg255447.h tml#msg255447 Quote from: valdir.marcos on August 10, 2017, 03:57:31 pmglslideshow_by_handoko - Can it be a component for Lazarus? Maybe on OPM? Good suggestion. I will do it, but I can't make any commitment now. If anybody have time, please do it. I have further split the UI section and graphics/animation code. --- edit --- Almost forget to mention, the code needs LazOpenGLContext package to compile. To enable it: Lazarus main menu > Package > Install/Uninstall Packages > select: LazOpenGLContext 0.0.1 > click: Install Selection > Save and rebuild IDE. ---------------------------------------------------------------------- Lulu · 2017-08-18 08:23 Good job Handoko ! ---------------------------------------------------------------------- Pascal · 2017-08-18 12:37 Very impressive Handoko!  If i could vote again i would vote for glSlideshow ---------------------------------------------------------------------- bylaardt · 2017-08-18 20:49 Quote from: Pascal on August 18, 2017, 02:37:15 pmIf i could vote again i would vote for glSlideshow A big extra large annoying "i told you" Quote from: bylaardt on August 07, 2017, 05:47:18 pmDeadline is september 21, right? glslideshow and educrace still evolving. Give them some time to finish. Both are nice projects. ---------------------------------------------------------------------- lainz · 2017-08-18 21:20 Quote from: bylaardt on August 18, 2017, 10:49:20 pmQuote from: Pascal on August 18, 2017, 02:37:15 pmIf i could vote again i would vote for glSlideshow A big extra large annoying "i told you" Quote from: bylaardt on August 07, 2017, 05:47:18 pmDeadline is september 21, right? glslideshow and educrace still evolving. Give them some time to finish. Both are nice projects. The deadline was September 1. Then I did it faster since no one was adding more projects. The last was in that time educrace. The voting deadline was September 21. But maybe we can do it before since a lot of users already voted and now you're the winner And most people not voted by message. So maybe until end of month is the new deadline for voting. A month for voting is a lot. ---------------------------------------------------------------------- bylaardt · 2017-08-18 22:29 Quote from: lainz on August 18, 2017, 11:20:45 pmBut maybe we can do it before since a lot of users already voted 1/5 of total votes in the last 48h and one project was updated. An early end can stop new updates. ---------------------------------------------------------------------- lainz · 2017-08-18 22:33 Ok. Just end 21 Sept. Hopefully we can get more comments with votes, and also in the poll. ---------------------------------------------------------------------- bylaardt · 2017-08-19 16:31 (Sep 21) Or (when all projects are stable) and (votes are stuck) ---------------------------------------------------------------------- Akira1364 · 2017-08-19 19:44 Quote from: Handoko on August 17, 2017, 10:49:33 pmBut because Vertex Array is only supported on OpenGL 3.0 or above and also I am not good on Maxtrix, so I didn't adopt them. The rendering code in my modified version uses client-side vertex arrays (meaning they exist in application memory, not GPU buffer objects, but still perform a lot better than pure immediate-mode glBegin/glEnd.) Client-side vertex arrays are not a "modern" feature at all and have been available in every version since OpenGL 1.1 (released in 1997!) I certainly could have introduced OpenGL 2.0/3.0+ style GPU-buffered arrays and shaders (which are the actual modern way of doing things), and my code was definitely designed to be easily adapted to that, but I was specifically trying not to make the hardware requirements too high. As it stands, anyone with a GPU that can run your version should also be able to run mine without issues. Also, the TCamera advanced record I added (which uses the TMatrix advanced record internally) is a direct drop-in replacement for and reimplementation of the set of functions you had been using. All you really need to know in order to use it is: -TCamera.LoadIdentity replaces glLoadIdentity -TCamera.Zoom replaces glScaleF -TCamera.Roll replaces glRotateF -TCamera.Move replaces glTranslateF -All of the functions have an "Upload" boolean parameter which defaults to false, but should be set to true whenever you want to send the camera's matrix to OpenGL. (For example, whenever you're doing multiple Zoom/Roll/Move operations directly one after another, only the last one needs to be uploaded as the matrix at that point is the result of all the operations combined.)  The whole point is just that it's much faster in general to have the matrix exist application-side and do your math operations on it application-side (and only upload it to OpenGL immediately before rendering, which I used glLoadMatrixF for) than it is call the built- in matrix functions from the OpenGL library, which are typically not particularly well optimized and add quite a bit of overall "latency" to the rendering loop. Very cool changes in your latest update, though! Looks like you've added quite a few new features. Might spend some time merging them into my version if I have the chance at some point. Quote from: J-G on August 13, 2017, 01:10:49 pmBecause I am still using BGRABitmap < 9.5 I can't re-compile the latest version but at least I can now appreciate what the program does AND I can confirm that the original program does handle 8 bit  (B & W) .JPG images. Not sure what exactly you're referring to here... as far as I know Handoko never uploaded a release of the original project that included BGRABitmap as a requirement in the LPI, or used BGRABitmap at all. The zip files of my modification (that does use BGRABitmap) that I've been uploading have only included two PAS files and an LFM (meaning no particular version of BGRABitmap has ever been specified anywhere.) My initial post about it just says to "add BGRABitmap to your project requirements" to be able to compile the project with the changed files. ---------------------------------------------------------------------- J-G · 2017-08-20 00:02 Quote from: Akira1364 on August 19, 2017, 09:44:36 pmQuote from: J-G on August 13, 2017, 01:10:49 pmBecause I am still using BGRABitmap < 9.5 I can't re-compile the latest version but at least I can now appreciate what the program does AND I can confirm that the original program does handle 8 bit  (B & W) .JPG images.Not sure what exactly you're referring to here... as far as I know Handoko never uploaded a release of the original project that included BGRABitmap as a requirement in the LPI, or used BGRABitmap at all. The zip files of my modification (that does use BGRABitmap) that I've been uploading have only included two PAS files and an LFM (meaning no particular version of BGRABitmap has ever been specified anywhere.) My initial post about it just says to "add BGRABitmap to your project requirements" to be able to compile the project with the changed files.I have tested so many 'Versions' - and still have the source code of 4 of them in my '2017 Contest' folder, re-testing to find the issue has been problematic !   I have now found the version that gave rise to my statement 'using BGRABitmap < 9.5'  -- it is Your source time-stamped at 13/8/2017 11:40 and it fails to compile with an error at line 228 of uniGraphics.pas - viz. (starting at line 210  therefore the fail line is 19 on '.width') Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure UpdateButtonImage(Button: TBitBtn; FileName: String);var  BaseImage, ThumbNail: TBGRABitmap;  Rect: TRect;begin  BaseImage := TBGRABitmap.Create(FileName);  Rect.Left := 0;  Rect.Top := 0;  if (BaseImage.Width > BaseImage.Height) then  begin    Rect.Right := Button.Width;    Rect.Bottom := (Button.Width * BaseImage.Height) div BaseImage.Width;  end  else  begin    Rect.Bottom := Button.Height;  Rect.Right := (Button.Height * BaseImage.Width) div BaseImage.Height;  end;  Thumbnail := TBGRABitmap(BaseImage.Resample(Rect.Width, Rect.Height));  BaseImage.Free;  Button.Caption := '';  Button.Glyph.Clear;  Button.Glyph.Assign(ThumbNail.Bitmap);  ThumbNail.Free;end; The error being 'identifier idents no member "Width"' - there is another error noted for "Height" as well - which I assumed to mean that BGRABitmap V9.5 differs from V9.2.1 by adding a 'width' and 'height' property. Although - on reflection - in the same message window I also see many 'Hints' referring to Duplicate Unit "bgrawritepng" etc.   so that may indicate some other cause based on the number of copies I have in nested folders. ---------------------------------------------------------------------- Akira1364 · 2017-08-20 01:10 Quote from: J-G on August 20, 2017, 02:02:33 amThe error being 'identifier idents no member "Width"' - there is another error noted for "Height" as well - which I assumed to mean that BGRABitmap V9.5 differs from V9.2.1 by adding a 'width' and 'height' property. I just dug up a complete BGRABitmap 7.2 source tree I had lying around on my computer (from who knows when... a long time ago, to be sure!) and I can confirm that the Width and Height properties were alive and well. Frankly I'm quite confident that they've probably always been there, since the very first version... what kind of image class would not have Width and Height? That would be insane! Haha. So yeah, I imagine it's likely some weird bug related to duplicate files on your end, as you had suggested... Also, you definitely don't have the most recent upload of my version... I can specifically tell as I've since made the UpdateButtonImage method a member of an "advanced record" called TSlideShowRenderer (along with all of the other image and rendering- related methods, essentially), and it starts at line 718. Would recommend re-downloading it! You can just go back to my initial post and grab the same zip file, as I was simply editing the post and swapping out the attachment as I went. ---------------------------------------------------------------------- J-G · 2017-08-20 08:13 Quote from: Akira1364 on August 20, 2017, 03:10:23 amI can confirm that the Width and Height properties were alive and well. Frankly I'm quite confident that they've probably always been there, since the very first version... what kind of image class would not have Width and Height? That would be insane! Haha.   I should have thought that comment through Quote from: Akira1364Also, you definitely don't have the most recent upload of my version... I can specifically tell as I've since made the UpdateButtonImage method a member of an "advanced record" called TSlideShowRenderer (along with all of the other image and rendering- related methods, essentially), and it starts at line 718. Would recommend re-downloading it! You can just go back to my initial post and grab the same zip file, as I was simply editing the post and swapping out the attachment as I went.Ah!  Now I remember that I had a problem looking for which post your latest version was attached to and thinking "Why not attach it to THIS post?" then being distracted by some external 'life' event and not getting back to it. I'll have another search and create a new folder for more tests. ---------------------------------------------------------------------- Akira1364 · 2017-08-20 17:48 Here's a direct link to my original post: https://forum.lazarus.freepascal.org/index.php/topic,35313.msg255447.h tml#msg255447 ---------------------------------------------------------------------- J-G · 2017-08-20 22:41 Quote from: Akira1364 on August 20, 2017, 07:48:13 pmHere's a direct link to my original post:Thanks - that make life so much easier  -  well so I thought I first deleted all the old files, then extracted the new  -  only to find that the 'new' .zip was only 3 files; frmMain.ifm & .pas plus uniGraphics.pas. The other 4 files were recovered from the [bin] and - - - - -  compile fails again for no identifier idents to member "width" and "height". At least I no longer have hints about duplicates though! ---------------------------------------------------------------------- Akira1364 · 2017-08-20 22:51 Quote from: J-G on August 21, 2017, 12:41:45 amI first deleted all the old files, then extracted the new  -  only to find that the 'new' .zip was only 3 files; frmMain.ifm & .pas plus uniGraphics.pas. That has been the case with all of the zip files I've uploaded. I've never included the entire project tree. It's always just been those three files. Regarding your problem though.. that is extremely strange! I honestly don't think it has anything to do with BGRABitmap at all. Is it possible that the compiler is referring to the Width and Height properties of TRect, and not TBGRABitmap? What version of FPC are you using? Also, when you right-click on the TRect part of the variable declaration "Rect: TRect" (at line 722 of my most recent upload) and choose "find declaration of TRect", which file exactly are you brought to? Additionally, what happens if you change the variable name "Rect" to "ARect"? (Make sure you change it in all the places it occurs in the overall UpdateButtonImage procedure, obviously.) This is what I would probably have called it from the outset had I originally written the method myself, as there is of course an RTL method also called Rect that returns a TRect. (And in my experience variables that have the same name as methods that are visible to the unit they're declared in are almost always bad news bears.) It's not unlikely that the naming conflict could be at least part of your issue... ---------------------------------------------------------------------- J-G · 2017-08-21 08:20 Quote from: Akira1364 on August 21, 2017, 12:51:09 amThat has been the case with all of the zip files I've uploaded. I've never included the entire project tree. It's always just been those three files.Ah...  I've probably been confused because I've also been downloading Handoko's files as well - though keeping each in separate folders! Quote from: Akira1364Regarding your problem though.. that is extremely strange! I honestly don't think it has anything to do with BGRABitmap at all. Is it possible that the compiler is referring to the Width and Height properties of TRect, and not TBGRABitmap? What version of FPC are you using? The error is flagged at line 736 : Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   Thumbnail := TBGRABitmap(BaseImage.Resample(ARect.Width, ARect.Height));Using FPC 3.0 Quote from: Akira1364Also, when you right-click on the TRect part of the variable declaration "Rect: TRect" (at line 722 of my most recent upload) and choose "find declaration of TRect", which file exactly are you brought to?Classesh.inc - line 28 Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i    TRect=Types.TRect; Quote from: Akira1364Additionally, what happens if you change the variable name "Rect" to "ARect"? (Make sure you change it in all the places it occurs in the overall UpdateButtonImage procedure, obviously.)As you can see from the first 'Code' extract above, did that - 9 occasions - but no change to the result. ---------------------------------------------------------------------- Handoko · 2017-08-21 08:23 Have you tried to delete the lib folder. I ever have weird issue happened after I combined codes from different version. It worked just weird, even I rebuilt the project. It solved after I delete the lib folder. Maybe you can try to do the same. ---------------------------------------------------------------------- J-G · 2017-08-21 08:48 Quote from: Handoko on August 21, 2017, 10:23:15 amHave you tried to delete the lib folder.Yes - it went with the first clear-out. ---------------------------------------------------------------------- J-G · 2017-08-21 09:11 Quote from: Handoko on August 17, 2017, 10:49:33 pmglSlideshow version 0.95 --- edit --- Almost forget to mention, the code needs LazOpenGLContext package to compile. To enable it: Lazarus main menu > Package > Install/Uninstall Packages > select: LazOpenGLContext 0.0.1 > click: Install Selection > Save and rebuild IDE. I'm having a similar problem compiling this version as I have with Akira's  uniGraphics.pas(108,8) Error: identifier idents no member "Height" A total of 23 errors between lines 108 and 143 of uniGraphics.pas  ie. anywhere ther is a mention of Rect.Width or Rect.Height. TRect again points to Types.TRect in classesh.inc as expected. In case I had some residual code conflicts I again cleared the folder completely before downloading and extracting the .ZIP file again. I also tested after adding the LazOpenGLContext package - just in case that solved both issues - irrespective of the lack of any logic in that action ---------------------------------------------------------------------- taazz · 2017-08-21 09:30 Quote from: J-G on August 21, 2017, 11:11:01 amQuote from: Handoko on August 17, 2017, 10:49:33 pmglSlideshow version 0.95 --- edit --- Almost forget to mention, the code needs LazOpenGLContext package to compile. To enable it: Lazarus main menu > Package > Install/Uninstall Packages > select: LazOpenGLContext 0.0.1 > click: Install Selection > Save and rebuild IDE. I'm having a similar problem compiling this version as I have with Akira's  uniGraphics.pas(108,8) Error: identifier idents no member "Height" A total of 23 errors between lines 108 and 143 of uniGraphics.pas  ie. anywhere ther is a mention of Rect.Width or Rect.Height. TRect again points to Types.TRect in classesh.inc as expected. In case I had some residual code conflicts I again cleared the folder completely before downloading and extracting the .ZIP file again. I also tested after adding the LazOpenGLContext package - just in case that solved both issues - irrespective of the lack of any logic in that action  Can it be a difference on fpc version? for example you are using version 3 and those are in trunk? http://forum.lazarus.freepascal.org/index.php?topic=29450.0 ---------------------------------------------------------------------- J-G · 2017-08-21 09:50 Quote from: taazz on August 21, 2017, 11:30:48 amCan it be a difference on fpc version? for example you are using version 3 and those are in trunk? http://forum.lazarus.freepascal.org/index.php?topic=29450.0The logic seems sound taazz.  I've been investigating a bit deeper - by tracing back through the definitions from Rect : TRect   ->  TRect=Types.TRect   ->   TRect = Windows.TRect   ----  eventually getting to : Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i      RECT = record          case Integer of             0: (Left,Top,Right,Bottom : Longint);             1: (TopLeft,BottomRight : TPoint);          end;     LPRECT = ^RECT;     _RECT = RECT;     TRECT = RECT; ...in struct.inc and of course there is no Height or Width mentioned! It may well be that I will have to await the posting of a compiled binary to see the full working programs. It had occurred to me that I might try to add a 'Save Project' option to Handoko's V0.95 but that aspiration has just disappeared ---------------------------------------------------------------------- Handoko · 2017-08-21 12:08 glSlideshow Version 0.96 Changes: Nothing special, just made it compilable on some FPC/Lazarus combinations. Hello, I made a quick fix for "cannot compile issue" (TRect related). Please test it. ---------------------------------------------------------------------- J-G · 2017-08-21 13:08 Quote from: Handoko on August 21, 2017, 02:08:48 pmglSlideshow Version 0.96 I made a quick fix for "cannot compile issue" (TRect related). Please test it.Hooray!  -  successful compile  using FPC 3.0/Laz 1.6     HOWEVER  (sorry Handoko!)  -   I have a destructive streak !!     -   Selecting images on my system at random I find some kill the program and others display 'jagged' - broken up - though I can't now find one to attach as a screen-shot. I've put 4 on my site  -  www.crescentcomputing.co.uk/LAZ/handoko  -  for you to test on your system. ---------------------------------------------------------------------- Handoko · 2017-08-21 13:39 Everything is working correctly here on my Linux64. I need more information. ---------------------------------------------------------------------- J-G · 2017-08-21 15:11 Quote from: Handoko on August 21, 2017, 03:39:54 pmEverything is working correctly here on my Linux64. I need more information.That is good to know at least. As you can see from the attached screen-shot the basic appearance is not the same as yours, in-as-much-as the [ProportionalScaling] box overwrites the [Background] button and there is no annotation on the slider bars. This screen grab was prior to [Run] of course and since the file is approaching the max allowable size, I'll post another three shots of just the view-area grabbed during a run. ---------------------------------------------------------------------- J-G · 2017-08-21 15:14 These three images were grabbed during the run so you can see how the images are all distorted  -  on my system. Needless to say that the images all display correctly in Photoshop/CorelDRAW! of course. ChiAn is a very high res (4800 dpi) 8bit image (B & W)  .PNG Crayon & Waterloo are 300 dpi RGB  .JPG Dullcisima a 300 dpi .TIF My main system (Win 7 Ult 64bit) is dual screen (one Portrait, one Landscape) both 1280 x 1024 and the 'problem' shows for both a 32 and 64 bit compile. My secondary system (Win 7 Pro 32bit) single screen 1920 x 1080 shows just white rectangles  -  this is most likely the fact that the Video card on that is does not support OpenGL - -  I certainly haven't installed OpenGL drivers for it - just testing to cover all bases! ---------------------------------------------------------------------- Handoko · 2017-08-21 16:34 Thanks for reporting. I'm currently fixing a Win7 computer (I'm a computer technician), so I can test and reproduce some of the issues you mentioned. 1. The mispositioned text My guess is CR/LF and/or right anchor issue. That is a multiline combo box with right anchoring. Linux's CR/LF is not the same as in Windows. 2. Missing annotation on slider bars Both the slider bar are TTrackbar. 3. The thumbnails did not look good On Linux, those thumbnail images look nicer. On Win7, the image sizes are too big, they reach the edges of the buttons. 4. Output image issue I cannot reproduce the distorted image effects as yours. I tested the program on an old computer with integrated VGA. Most of the transitions worked well, only on some transitions they appeared totally white. I think it is reasonable because those problem transitions are using OpenGL 1.2 commands, which that VGA cannot support. Lazarus slogan: "write once, compile anywhere" Sounds too easy. Yep, it really compiles on other platforms but the results can be unexpected.  Some of the issues above, I believe are the widgeset bugs. Okay, I will try to fix them one-by-one. Give me some days, lets see what I can do. ---------------------------------------------------------------------- J-G · 2017-08-21 17:12 Quote from: Handoko on August 21, 2017, 06:34:37 pmThanks for reporting.You're welcome  -  it's what the Contest is about Quote from: HandokoSome of the issues above, I believe are the widgeset bugs. Okay, I will try to fix them one-by-one. Give me some days, lets see what I can do.There's no rush as far as I'm concerned. Another point I had meant to raise before, is that when I open your project (double click .LPI file), Laz opens but doesn't display the uniGraphics.PAS file nor the 'Form'. To date I haven't been able to view the form (ToggleFormUnitView [F12] is greyed out) and the option to view the Source Editor just brings up an empty window  - - - unless there has been a compile error. This means that I cannot set break points to step through the code to determine what exactly might be going on. ---------------------------------------------------------------------- Handoko · 2017-08-21 17:19 Have you tried to use Project Inspector? Lazarus main menu > Project > Project Inspector. ---------------------------------------------------------------------- J-G · 2017-08-21 21:47 Quote from: Handoko on August 21, 2017, 07:19:39 pmHave you tried to use Project Inspector? Lazarus main menu > Project > Project Inspector.Obviously not    -  With my own projects I haven't needed to ferret about in the sub menus a great deal, the source is simply there. At least I can now do a little more investigation but I still can't see the [Form] which would allow me to adjust the 'ProportionalScaling' tick box - even the Object Inspector is blank so I can't select the component and change the figures manually (rather than in the GUI). ---------------------------------------------------------------------- lainz · 2017-08-22 01:17 Quote from: J-G on August 21, 2017, 11:47:16 pmQuote from: Handoko on August 21, 2017, 07:19:39 pmHave you tried to use Project Inspector? Lazarus main menu > Project > Project Inspector.Obviously not    -  With my own projects I haven't needed to ferret about in the sub menus a great deal, the source is simply there. At least I can now do a little more investigation but I still can't see the [Form] which would allow me to adjust the 'ProportionalScaling' tick box - even the Object Inspector is blank so I can't select the component and change the figures manually (rather than in the GUI). Easy. Go to Project > Forms> Form1 > open that. Trying to use the images you provided, the error is on this line: GraphType:   // allocate some space   ADst.CreateData(False);    So basically there's no enough RAM or Video card RAM. With other image I get this: Win32Proc:     // We cannot trust windows with bmWidthBytes. Use SrcLineBytes which takes     // DWORD alignment into consideration     with AWinBmp do       Result := CopyImageData(bmWidth, bmHeight, SrcLineBytes, bmBitsPixel, bmBits, ARect, SrcLineOrder, ALineOrder, ALineEnd, AData, ADataSize);     Exit;    And with other images just the same as you, distorted. ---------------------------------------------------------------------- Lulu · 2017-08-22 09:45 Hello, I'm not a specialist in OpenGL. In my search about it, I learned that texture size are limited by video card. You can retrieve the max texture size that the video card can support with: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var MaxTexSize: GLInt;...glGetIntegerv(GL_MAX_TEXTURE_SIZE, @MaxTexSize); ---------------------------------------------------------------------- J-G · 2017-08-22 10:24 Quote from: lainz on August 22, 2017, 03:17:31 amQuote from: J-G on August 21, 2017, 11:47:16 pm... but I still can't see the [Form] which would allow me to adjust the 'ProportionalScaling' tick box - even the Object Inspector is blank so I can't select the component and change the figures manually (rather than in the GUI).Easy. Go to Project > Forms> Form1 > open that.Duh!!  There is so much more to learn once you've got past adding a component Once the form is [Open] of course the object inspector is populated. Quote from: lainzTrying to use the images you provided, the error is on this line: GraphType:   // allocate some space   ADst.CreateData(False);    So basically there's not enough RAM or Video card RAM.I said that I have a  'destructive streak'   -  since I often want to make a large (A3+) physical print of some of my photographs I do have very large files - this past week I've scanned some new 6x7 slides at 6400 dpi creating files over 600Mb  The three colour files I selected at random are only 1.5, 2 and 3Mb so I'm a little surprised that they cause a 'Memory' problem. My 9500GT card has 1Gb dedicated RAM. I must admit that I have become somewhat cavalier over file size since the idea of more that 64Mb of RAM was inconceivable when I bought my 'Nascom' in 1980   and now I'm getting by with 4Gb and 1.2Tb of Drive space. My grandson has a PC with 24Gb and 5Tb ! As Lulu has just posted - it might be possible to test for 'oversize' prior to display - better still at browse-selection time - and re- sample the image accordingly . . .  or post a message to say the image is too large. Quote from: lainzWith other image I get this: Win32Proc:     // We cannot trust windows with bmWidthBytes. Use SrcLineBytes which takes     // DWORD alignment into consideration     with AWinBmp do       Result := CopyImageData(bmWidth, bmHeight, SrcLineBytes, bmBitsPixel, bmBits, ARect, SrcLineOrder, ALineOrder, ALineEnd, AData, ADataSize);     Exit;    And with other images just the same as you, distorted. ---------------------------------------------------------------------- J-G · 2017-08-22 13:17 @ Handoko Now I can see the code and can 'step through' I've just come across a small issue at Line 512 in frmMain : Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i     Button.Tag           := Int64(Slide);When I set the target to 32bit this gives a warning : Conversion between ordinals and pointers is not portable changing it to Int32(Slide) removes it of course. I don't know what effect making the change might have but it might be worth determining what the target is prior to the .Tag assignment. ---------------------------------------------------------------------- Akira1364 · 2017-08-22 16:16 Just played around with Handoko's latest update, and initially had the same distortion/flickering/black screen issue as J-G when loading large images. I was quite certain that it wasn't a problem with my GPU (as it has 8GB vram!) and figured out pretty quickly that it's caused by the following part of TForm1.LoadImageClick (which gets called if the source image is larger than the users monitor): Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i with Image.Picture.Bitmap do  if (Width > Screen.Width) or (Height > Screen.Height) then    gls_ScaleDown(Screen.Width, Screen.Height, Image.Picture.Bitmap); Scaling the actual loaded TBitmap at this point is completely unnecessary and interferes with the calculations in the (correct) OpenGL matrix scaling that happens later on in the DrawScene procedure. It's important to keep in mind that the way OpenGL renders textures has absolutely nothing to do with the size of the original source image. It's entirely dependent on the provided vertex coordinates, the provided texture coordinates, and the coordinates of the current matrix. You can load a texture with an original size of 8192 x 8192 and it will fit on the screen just fine as long as you remember to scale the matrix appropriately, based on the size of the viewport. Comment out that part of the procedure, and you should have no problems with images of any size. ---------------------------------------------------------------------- Handoko · 2017-08-22 16:24 Have to merge it with your code? I really like your code, lots of things for me to learn. I've been playing with graphics programming since I was a kid, but OpenGL is relatively new to me. And I'm sorry with my misunderstanding that I think your code requires newer version of OpenGL to run. I searched the web about vertex array and I got the result of vertex array object, which I thought is the thing you're doing. ---------------------------------------------------------------------- Akira1364 · 2017-08-22 16:52 Quote from: Handoko on August 22, 2017, 06:24:44 pmI really like your code, lots of things for me to learn. Thanks! Like I said before, the whole reason I did it in the first place was basically as a bit of an example for any users here who might be interested in learning OpenGL beyond the absolute base-level early-90's immediate mode stuff. Quote from: Handoko on August 22, 2017, 06:24:44 pmAnd I'm sorry with my misunderstanding that I think your code requires newer version of OpenGL to run. I searched the web about vertex array and I got the result of vertex array object, which I thought is the thing you're doing. Haha, no worries. To be honest, a lot of the way things are named in OpenGL is kind of silly and not very self-explanatory, and can definitely be confusing if you're not especially familiar with it all. ---------------------------------------------------------------------- Lulu · 2017-08-23 19:38 Hello I made some changes on Educ'Race and now, it (normally) runs without sound if OpenAL library is not installed. Could someone try to compile it on Linux and/or Mac please ? You need this two package: - BGRABitmapPack ( in BGRABitmap library->bgrabitmappack.lpk ) - LazOpenGLContext ( in Lazarus folder->components->opengl->lazopenglcontext.lpk ) Thanks to test it. Here the link to download the source (12Mb) www.lulutech.fr/EducRace/EducRaceSrc.7z ---------------------------------------------------------------------- Handoko · 2017-08-24 06:24 Tested on Lazarus 1.6.4 64-bit on Ubuntu Mate with GeForce 430 VGA machine and I found 4 issues. 1. OGLCScene.pas line #323 - Missing File It can be fixed easily by typing the file name correctly. Linux is case sensitive. 2. moto.png - File Not Found After solving issue #1, the program can be compiled successfully. But failed to start with missing texture problem. I renamed the file moto.PNG to moto.png then it started correctly. 3. Texts Issue Most of the texts were missing their lower part, see the attachment. Some of them can be shown fully but flipped vertically. 4. Missing File It's a minor issue, the code is still compilable without need to solve this issue. On the Project Inspector, there is a problem item marked with a red line. Lazarus main menu > Project > Project Inspector The audio was playing correctly. Where did you get the background music? It's nice. ---edit--- Issue 5: I just noticed, the textures of the cars are flipped vertically too. ---------------------------------------------------------------------- Lulu · 2017-08-24 08:17 Thanks Handoko for testing it I fixed the case sensitive issues and obsolete file missing in project inspector. On your screenshoot, sprites are vertically inverted and the color are not respected. It seems that red green blue components are swapped, but alpha channel is keeped at the right place. For the inverted sprite, may be there is a issue in vertex order ? I will take a look on your glSlideshow and compare with my code. I wrote the music with Reason 3.0 for a puppet show ---------------------------------------------------------------------- Handoko · 2017-08-24 08:33 For the texture vertical problem, I remember Akira1364 ever said it is an issue of BGRABitmap on Linux: http://forum.lazarus.freepascal.org/index.php/topic,35313.msg255460.ht ml#msg255460 For the color issue, I used my own BGRAtoRGBA function. But I now use OpenGL to handle the BGRA texture: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Image.Width, Image.Height, 0,    GL_BGRA, GL_UNSIGNED_BYTE, Image.RawImage.Data); You can see the parameter GL_RGBA and GL_BGRA ---------------------------------------------------------------------- Lulu · 2017-08-24 10:05 Quote from: Handoko on August 24, 2017, 10:33:28 amFor the texture vertical problem, I remember Akira1364 ever said it is an issue of BGRABitmap on Linux: http://forum.lazarus.freepascal.org/index.php/topic,35313.msg255460.ht ml#msg255460 For the color issue, I used my own BGRAtoRGBA function. But I now use OpenGL to handle the BGRA texture: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Image.Width, Image.Height, 0,    GL_BGRA, GL_UNSIGNED_BYTE, Image.RawImage.Data); You can see the parameter GL_RGBA and GL_BGRA For colors, I follow your code and it work well ! And for inverted sprites issue, before creating OpenGL texture, I added a compilation directive like: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i function TTextureManager.InitFromBGRABitmap(aIma: TBGRABitmap ): PTexture;var temp, dup:TBGRABitmap;begin dup := aIma.Duplicate as TBGRABitmap;{$IFNDEF WINDOWS} dup.VerticalFlip;{$ENDIF}...  Here the new version www.lulutech.fr/EducRace/EducRaceSrc.7z ---------------------------------------------------------------------- Handoko · 2017-08-24 11:46 I found 2 bugs: 1. oglcSurfaceImplementation.inc line #2412 - Syntax Error The compiler reports error on line #2412, actually the bug is on line #2406. You should move the "const" to inside the $IFDEF block. The correct code should be: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  {$IFDEF WINDOWS}const  FLIP_TEXCOORD : array[ 0..3 ] of TTextureCoordIndex = ( ( 0, 1, 2, 3 ), ( 1, 0, 3, 2 ), ( 3, 2, 1, 0 ), ( 2, 3, 0, 1 ) );//( ( 3, 2, 1, 0 ), ( 2, 3, 0, 1 ), ( 0, 1, 2, 3 ), ( 1, 0, 3, 2 ) ); {$ELSE}  {$ENDIF} 2. oglcSurfaceImplementation.inc line #2455 - Identifier Not Found For this one, I have no idea. ---------------------------------------------------------------------- Lulu · 2017-08-24 12:02 Oh, I'm sorry, reading your publication where you talk about Akira, I started a method to avoid the image of inverted sprites then I forgot my first idea and left to rewrite another part of my code ... Simply remove the IFDEF WINDOWS, ELSE and ENDIF lines and keep only Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i const  FLIP_TEXCOORD : array[ 0..3 ] of TTextureCoordIndex = ( ( 0, 1, 2, 3 ), ( 1, 0, 3, 2 ), ( 3, 2, 1, 0 ), ( 2, 3, 0, 1 ) );//( ( 3, 2, 1, 0 ), ( 2, 3, 0, 1 ), ( 0, 1, 2, 3 ), ( 1, 0, 3, 2 ) ); ---------------------------------------------------------------------- Lulu · 2017-08-24 19:41 @Handoko, I made some test with glSlideshow with PNG image 1) 1024x768 image : no problem, all work perfectly 2) same image resized to 4096x4096 : application crash. I commented Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i //glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Image.Width, Image.Height, 0,    //GL_BGRA, GL_UNSIGNED_BYTE, Image.RawImage.Data);in unit uniGraphics, line 290/291 -> Nothing is drawn of course, but application don't crash. 3) same image resized 4096x4096 : I uncommented lines above, then I commented lines 325/327 in unit frmMain Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   // Resize the image if it's larger than screen size//  with Image.Picture.Bitmap do//    if (Width > Screen.Width) or (Height > Screen.Height) then//    gls_ScaleDown(Screen.Width, Screen.Height, Image.Picture.Bitmap); No crash and image is drawn and move according the transition selected, but it's slow due to 4096x4096 pixels image. Maybe it's a relationship to the fact that video cards only accept texture sizes in power of 2? But I don't know if this is a rules for all cards or only some of them. In the framework for educ'race game, i use the following function to compute the new size of an image to resize it in power of 2. I tryed it with the 4096x4096 png image and it work. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i function TTextureManager.ValueOfNextPowerOfTwo(aValue: integer): integer;begin Result :=1; while ( power (2,Result) KilledR) then Inc(EnemyKilled);              Enemy^.CurrentActivity := KilledR;        end;          if (Player.CurrentActivity = AttackR) and          BothIntersect(PosX+55, PosX+80, Enemy^.PosX+33, Enemy^.PosX+68) then begin              if (Enemy^.CurrentActivity <> KilledL) then Inc(EnemyKilled);              Enemy^.CurrentActivity := KilledL;        end;        end;    end; wow the code above looks so compliated. I will write a complete step-by-step tutorial explaining how this Furious Paladin's code works. But maybe some months later, I'm a bit busy at the end of this year. ---------------------------------------------------------------------- lainz · 2017-12-28 14:25 Thanks for sending us the game! I've added that to the list of the games of the graphics contest 2017 in the games sub forum.