Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - dreamerman

#61
Steam version has major compiler (GCC) differences from older GLB versions so I doubt that html5 Steam target would work on GLB v15, yet there is older html5 target somewhere on this site, or at least it was, as now I can't find it (other thing is that I had no luck with it with bigger projects), but if you would encounter issues/bugs with it they would not be resolved as Steam version is only focus. Due that and as generally older versions have some bugs, best thing you could do, would be to ask Gernot for Steam version key code (if he still can generate those for older users).
Take note that I didn't use html5 target from years, mainly due to extensive use of PolyVectors and OpenGL/C++ inline, so can't talk to much about it current state.
#62
Generally GLBasic licence code is kept in 'AppData\Local\Temp\glbasic\glblicence.inc' file, that's generated with project compilation, it contains 'encrypted/hashed' email and licence code. Old (standalone) version code differs a bit from Steam version but after decoding should be usable to use in pre-Steam version.
In short: maybe ask Gernot for proper licence code for old version (submit your Steam profile for verification), decode licence.inc to use Steam credentials in older version (not sure how difficult it will be), or try using my code editor (works with GLB v14/15/16, but I didn't test compilation for all platforms). Another workaround but not tested, would be compile any project with Steam version to get 'glblicence.inc', use properties-advanced to set that file to admin created with 'read-only' flag for other users, so your user account would not be able to overwrite/delete it when you would use older GLB version.
#63
The lib that I linked is quite small and looks cross-platform so shouldn't be to hard to use it with inline, but crucial thing here is to have multi-platform solution that would be simple to use, on other hand targets with SDL2 subsystem could most likely use sdl_ttf, so only solution for Windows would be needed (don't know how HTML5 WebGL target is working atm).
It could even use some kind of pre-caching stage for creating glyphs bitmap - in menus all text is predefined during transition, same high scores, only dialog text in rpg like game would need more often available glyph updates.
But it would be just better to have such feature built-in GLB.

But for a moment I have something like this to force extended ASCII charset:
Code (glbasic) Select

// simple UTF8 to ASCII conversion
// converts only Latin based characters, other are replaced with '?'
FUNCTION UTF8toLatin$: utf8$
    LOCAL copy$ = utf8$
    LOCAL i1%, i2% = LEN(utf8$), i3%, i4%, txt$ = "", txt_len% = LEN(utf8$)
    LOCAL asc_tab%[], cjump%, fchar%, utfhex%
    DIM asc_tab%[txt_len%]

    // conver to array
    FOR i1% = 0 TO txt_len% - 1
        asc_tab%[i1%] = ASC(utf8$, i1%)
    NEXT
   
    i1% = 0
    WHILE i1% < txt_len% - 1
        i3% = asc_tab[i1%]
        IF (i3% < 32)
            cjump% = 1; fchar% = 63
        ELSEIF (i3% > 127)      // two chars
            cjump% = 2
            // simplified
            i4% = asc_tab%[i1%+1]
            utfhex% = i3% * 256 + i4%
            IF (utfhex% >= 49792 AND utfhex% <= 50111); fchar% = 128 + (i3% - 194) * 64 + i4% - 128     // extended ASCII
            ELSEIF (utfhex% >= 50304 AND utfhex% <= 50309); fchar% = IIF(MOD(utfhex%, 2) = 0, 65, 97)       // c4 80 - to - c4 85 -> A/a
            ELSEIF (utfhex% >= 50310 AND utfhex% <= 50317); fchar% = IIF(MOD(utfhex%, 2) = 0, 67, 99)       // c4 86 - to - c4 8d -> C/c
            ELSEIF (utfhex% >= 50318 AND utfhex% <= 50321); fchar% = IIF(MOD(utfhex%, 2) = 0, 68, 100)      // c4 8e - to - c4 91 -> D/d
            ELSEIF (utfhex% >= 50322 AND utfhex% <= 50331); fchar% = IIF(MOD(utfhex%, 2) = 0, 69, 101)      // c4 92 - to - c4 9b -> E/e
            ELSEIF (utfhex% >= 50332 AND utfhex% <= 50339); fchar% = IIF(MOD(utfhex%, 2) = 0, 71, 103)      // c4 9c - to - c4 a3 -> G/g
            ELSEIF (utfhex% >= 50340 AND utfhex% <= 50343); fchar% = IIF(MOD(utfhex%, 2) = 0, 72, 104)      // c4 a4 - to - c4 a7 -> H/h
            ELSEIF (utfhex% >= 50344 AND utfhex% <= 50354); fchar% = IIF(MOD(utfhex%, 2) = 0, 73, 105)      // c4 a8 - to - c4 b1 -> I/i
            ELSEIF (utfhex% >= 50354 AND utfhex% <= 50357); fchar% = IIF(MOD(utfhex%, 2) = 0, 74, 106)      // c4 b2 - to - c4 b5 -> J/j
            ELSEIF (utfhex% >= 50358 AND utfhex% <= 50360); fchar% = IIF(MOD(utfhex%, 2) = 0, 75, 107)      // c4 b6 - to - c4 b8 -> K/k
            ELSEIF (utfhex% >= 50361 AND utfhex% <= 50562); fchar% = IIF(MOD(utfhex%, 2) = 1, 76, 108)      // c4 b9 - to - c5 82 -> L/l
            ELSEIF (utfhex% >= 50563 AND utfhex% <= 50571); fchar% = IIF(MOD(utfhex%, 2) = 1, 78, 110)      // c5 83 - to - c5 8b -> N/n
            ELSEIF (utfhex% >= 50572 AND utfhex% <= 50579); fchar% = IIF(MOD(utfhex%, 2) = 0, 79, 111)      // c5 8c - to - c5 93 -> O/o
            ELSEIF (utfhex% >= 50580 AND utfhex% <= 50585); fchar% = IIF(MOD(utfhex%, 2) = 0, 82, 114)      // c5 94 - to - c5 99 -> R/r
            ELSEIF (utfhex% >= 50586 AND utfhex% <= 50593); fchar% = IIF(MOD(utfhex%, 2) = 0, 83, 115)      // c5 9a - to - c5 a1 -> S/s
            ELSEIF (utfhex% >= 50594 AND utfhex% <= 50599); fchar% = IIF(MOD(utfhex%, 2) = 0, 84, 116)      // c5 a2 - to - c5 a7 -> T/t
            ELSEIF (utfhex% >= 50600 AND utfhex% <= 50611); fchar% = IIF(MOD(utfhex%, 2) = 0, 85, 117)      // c5 a8 - to - c5 b3 -> U/u
            ELSEIF (utfhex% >= 50612 AND utfhex% <= 50613); fchar% = IIF(MOD(utfhex%, 2) = 0, 87, 119)      // c5 b4 - to - c5 b5 -> W/w
            ELSEIF (utfhex% >= 50614 AND utfhex% <= 50616); fchar% = IIF(MOD(utfhex%, 2) = 0, 89, 121)      // c5 b6 - to - c5 b8 -> Y/y
            ELSEIF (utfhex% >= 50617 AND utfhex% <= 50622); fchar% = IIF(MOD(utfhex%, 2) = 1, 90, 122)      // c5 b9 - to - c5 be -> Z/z
            ELSE; fchar% = 63
            ENDIF
        ELSEIF (i3% >= 224)      // three chars
            cjump% = 3; fchar% = 63
        ELSEIF (i3% >= 240)      // four chars
            cjump% = 4; fchar% = 63
        ELSE    // normal char
            cjump% = 1; fchar% = i3
        ENDIF
       
        INC i1%, cjump%
        INC txt$, CHR$(fchar%)
       
    WEND
copy$ = txt$
RETURN copy$

ENDFUNCTION

nothing special, unpolished, no error checking, but works for European languages, other like Asian will be converted to '?' chars, it's fast solution for online high scores, and as I got Steam Leaderboards working with fetching user avatars this will be sufficient for some time.
#64
Good HD graphic and animation, looks like solid match3 game. You could consider adding some special mechanic or something to it, or it's just playing around with something else than Atari? (interesting retro materials on your YT channel) ;)
#65
Recently I checked few standard TTF font's and they are working properly, higher scale value shows not highest quality (as Qedo mentioned) but it's sufficient for most use cases. Didn't check some more artistic fonts from web, so maybe there are additional limits, but can't say that.

But I'm bumping this from other TTF related reason. Is there a 'simple' way to display/render UTF8 text with use of TTF fonts (or some other trick) in GLB? Standard bitmap font is limited to 128/256 characters, and TTF font's also have such 256 char limit.
For static/predefined text (like menu, buttons, labels) I'm using auto-generated earlier bitmaps, so I can have any language versions that I want.
The deal is to display runtime defined text, like user nicknames from for example Steam Leaderboards where entries are encoded in UTF8 and can contain national specific characters (like Chinese, Russian and so on). Simplest thing will be just replace any-non-standard-char with '?' but this may look bad :D Is there any work around for that, anyone has some clever function that will convert UTF8 to ASCII using extended 256 character set, so at least west Europe languages would be covered by it?

There are some crazy workarounds but all have some negatives:
- use php server to generate bitmap with proper coding/charset, based on input UTF8 string, GLB would download such bitmap and display it, this would increase server load and take some from transfer limit,
- include small local native app, that would do same as above script, but it's solution only for Windows,
- port FreeType lib (that's powering SDL_ttf) to GLB, quite big task just to have nice highscores in a game,
- or maybe something smaller like this lib: Font Stash,
Most likely if there will be no simple solution I will stick to '?' replacement, hopefully with adding player avatars to mitigate the issue.
#66
Very nice code, and may have other usage as well.
I tried to compare it with my basic FloodFill from path finding routines, and Your code is 2 times faster, so I will try to implement this algorithm in path finding in near time. One thing to check would be using full size array and omit DIMPUSH/DIMDEL, it could bring some minor speed improvement but I'm not sure, it's very good in current state.
And in general the algorithm it self is more that 4-5 times faster, just that Sprite2Mem & FastMem2Sprite take some additional time, but even with them it's really fast, and could be used for some special effects in retro project.
Btw. I remember that lodev.org has also great articles about raycasting :)
#67
Any more specific info? Latest Steam version, demo or some older version?
Did that happen in standard IDE, or You tried to build app manually with command line/bat files, as in platform.ini for Win32 target those libraries are properly typed in link stage -> -lGLBasicWin32 -lCxImageWin32,
and such issue shouldn't appear. Can't say anything more as never encountered such problem without messing with custom compile/link gcc commands.
#68
Merry Christmas and Happy New Year!  :booze:
Let it be better than the last ones.
#69
3D-snippets / Re: SGEngine
2021-Dec-23
Quote from: SnooPI
Quote from: dreamerman
Nevertheless your Irrlicht wrapper works without problems
It's not just an Irrlicht Wrapper, it's SGE!  :rant:  :P
Sorry my bad :P I wanted to say that Your engine works great ;) Is 'SGEngine' is abbreviation from 'SnooPI Game/Graphics Engine'? :]

Quote from: dreamerman
keeping all core code behind curtain in SGE lib...
It meant that core code responsible for all things, works in back, just like in a proper game engine, so end-user doesn't bother messing with unnecessary stuff - has simplified task with ready to use simple functions :)
#70
3D-snippets / Re: SGEngine
2021-Dec-22
Not sure how much to blame M$ and how much others like Intel, but from I discovered through digging in internet is that older iGPU's (most likely older graphic cards too) doesn't have proper Win10 drivers, they are using Win8.1 drivers with some tweaks/compatibility layer or whatever, that's why there are some issues - like not all hardware capabilities are exposed through those drivers - something is available/working ok in older Windows but not in >Win10, at least from what I found out/understand. It relates to both OpenGL and DirectX afaik, yet this may be wrong... I must admit that in some way I understand that, newer OS are for newer hardware so it can fully utilize it features and don't look behind (but it hurts :D)..

Nevertheless your Irrlicht wrapper works without problems, I checked all included examples, no visible issues found, all work with fluidity, mostly > 200fps (in windowed mode, beside BSP). The way You are doing this - keeping all core code behind curtain in SGE lib makes it really clear, simple to read and use, someone may be more familiar with this kind of scene management or have irr* background so would be easier for him to transit to GLB, another thing that some functions can be handy during prototyping phase.
Keep up good work, built-in some kind of physic will be interesting to see :-)

Happy Christmas! :)
#71
I didn't play with this trick, so can't say much, but I didn't see any file format restrictions in GLB source. Did You check ogg files for music? This shouldn't be OS specific so I doubt it rather something else, can You share any source code to check this?
#72
Steam version contains also standard executable that doesn't require Steam to run in background, this is that file: "...\Steam\steamapps\common\GLBasic_SDK\EditorE.exe" ;)
Ah so there is no option to run x86 Windows in such virtualization machine? I didn't touch them in a long time, but they were specially handy in running some old Win95 games :D

Edit: and of course you can use Steam version normally and just run GLB apps directly - not from editor and see if flickering still appears.
#73
Nice retro project, looking at this I really feel old vibes but don't get me wrong I'm glad that those times are gone :D consoles were better with hardware sprites, palette switching and so on, best 2D for computers were later during Amiga 500+ and competing Atari times. But from technical aspect looks that it's faithful to the original.
I hope that there is no copyright restrictions on such old thing, as you could put it on itch.io even as free project to get more feedback. If you are working on something else don't hesitate to share on forum ;]
#74
Your site is down, but checked demo attached in first post, nice old school gameplay there :]
I went to see source, and wow, more than 100 files, looks that You have separate file for every enemy type, game mechanic and so on, interesting, I prefer to have for example one file for all AI, but whatever suits you, specially that code is nicely structured and formatted, despite using DrawAnim it isn't demanding like many other small indie games (GLB power). Played 3 levels, sun can be annoying, there are some hit box/collision problems in this version (sun hit me even when crouching and he is 2 tiles away), level 3 is crazy but funny :D
Most notable suggestions is give option to change video resolution - even basic 2x/3x scaler or something would be nice, and give option to use WASD keys to move, as arrows aren't always best for this - laptops.
Don't forget to upload newer version and share changes, but what's most important put this game on itch.io ;)
btw. nicely animated fox.
#75
Windows 11 has some issues so I would not use it for such thing for moment, Win 10 would be better imho. I don't know what gpu configuration options Parrarel has, so hard to say, as generally driver issues can be really tricky.
One thing that I can advise is running standalone GLB version (both editor and compiled projects) - not launching it from Steam, as  Steam attaches overlay for everything, this also can cause some problems even if it's not properly displayed.
Sadly Apple restricted new iOS/MacOS apps to use Metal API, I'm curious if currently OpenGL apps could be compiled to MacOS as Steam is available there so can be used to distribute games on this platform. HTML5 target is also a solution if it handles all GLB functions properly. Please update this topic if you found anything new, specially related to M1 macs, as this architecture change will evolve in future, on PC market we are years before any ARM revolution, but node shrinking and new technologies still will give nice improvements.