H-Craft Championship Open Source

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: H-Craft Championship Open Source

Post by CuteAlien »

Hm, dll's... could be libgcc_s_dw2-1.dll and libstdc++-6.dll which are messing things up. Try deleting or replacing them. Those probably don't belong in the source-control. I guess I checked them in because I was scared of not finding them anymore anywhere in the future otherwise (if mingw moves on) and I would lose my only working version. But when compiling with a newer mingw they have to be replaced.

edit: Ah - after deleting those I also get the TGA errors (before I couldn't start a compiled version on Windows at all yet)
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

I even build now all statically , without any dlls : same error.
The only case when all works, its with irrlicht.dll coming from the win32 binary release archive, when build whole h-craft non-statically.

Will try now to build it for linux. Maybe its just for win32 something wrong in irrlicht which placed in the h-craft trunk
Last edited by kas1e on Fri Oct 11, 2019 4:08 pm, edited 1 time in total.
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

@CuteAlien
Tried to build Linux version : all fine from begining, no problems. So issue seems in Irrlicht itself, but in win32 part, about handling tga formats (seems so) ?
I tried on win32 2 different compilers (through, both times mingw, but one time i tried with one from MSYS2 environment, thant 7.3.0 , and one time one from CodeBlocks).

So or issue is with mingw support (maybe those things about packet structs you mean still didn't fixed fully), or something else..

But as i build all statically and issue still here,then its probably not because of other dlls, but in irrlicht's win32 code (imho of course).
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: H-Craft Championship Open Source

Post by CuteAlien »

Pretty sure it's struct packing going wrong. It messed up the values of the tga-header when reading it.
edit: Yeah, there was another change in Irrlicht 1.8 which I don't see in changes.txt. Which fixes the fix for struct packing once more. Before the check for gcc versions was wrong so - kinda depended on your gcc minor version if it worked or not. Which also explains why it worked for me back then. Unfortunately this only gets me one step further - now I end up with crashes inside the standard library dll. Probably because after deleting those 2 dll's I have in source-control I must rebuild all libs first. *sigh*
edit2: Rebuilding everything didn't help. Argh.
edit3: I give up for now.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

@CuteAlien
Yeah, there was another change in Irrlicht 1.8 which I don't see in changes.txt. Which fixes the fix for struct packing once more
Ah i see, seems that h-craft irrlicht its just 1.8.2 (not full) + added something from 1.9.0. So exactly that "Fix compiling on GCC5 on MinGW" didn't fit in. Also and other fix coming in 1.8.3 "Fix the fix for compiling on GCC5". In other words, the correct fix is to have in irrpack.h just that:

if (__GNUC__ > 4 ) || ((__GNUC__ == 4 ) && (__GNUC_MINOR__ >= 7))

And yeah all builds, but then i just crashes when use new libirrlicht.dll with that "packed" change : I run game, have that output:
Log set-up.
strArgv0D:\msys64\work\hcraft_test\
strCwdd:\msys64\work\hcraft_test/
MakeLinuxTypePath orig:d:\msys64\work\hcraft_test/
MakeLinuxTypePath modified:d:/msys64/work/hcraft_test/
MakeLinuxTypePath orig:D:\msys64\work\hcraft_test\
MakeLinuxTypePath modified:D:/msys64/work/hcraft_test/
strArgv0D:/msys64/work/hcraft_test/
BasePath: D:/msys64/work/hcraft_test/
compiled date Feb 21 2015
compiled time 22:52:55
log priority file: 1
log priority stderr: 5
log priority stdout: 0
log priority stream: 5
Irrlicht Engine version 1.9.0
And then crash :(


Btw, i also checked the versions of gcc i use and:

linux : gcc 7.4.0 x86_64
msys2 : gcc 7.3.0 i686-w64-mingw32
codeblocks : gcc 5.1.0 mingw32

For linux it works , for msys2 and codeblocks mingws are not.


EDIT1 : i can make it works in my mingw like this now: i compile whole irrlicht with adding "-mno-ms-bitfields" (as writen in comment in the irrpack.h) instead of adding "pragma pack" fix. And it works ! Yahoo !
EDIT2: but seems that "-mno-ms-bitfields" trick works only on codeblocks's mingw (5.1.0), but didn't on msys2 mingw (7.3.0). But in general whatever if i want to make amigaos4 port, and win32 only need for some testing, and i make it works with codeblock's mingw at least.
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

Oh good news !

For amigaos4 i have no such problems as for win32 ! Everything fine ! Check this out:

http://kas1e.mikendezign.com/aos4/gl4es ... nshot1.jpg
http://kas1e.mikendezign.com/aos4/gl4es ... nshot2.jpg

Only what i had to change its endianes for ov_read() in ogg_stream , but in others i almost made no changes !

I didn't see it, but is there ability to enable FPS counter in the game, so to see how fast/slow it operate on me ?
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

@CuteAlien
Check this out: https://youtu.be/4UM3mOpYE94
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: H-Craft Championship Open Source

Post by CuteAlien »

Wow! That worked a lot faster than I expected :-) I guess "ghosts" might still be a problem as I'm not sure I cared about endian-correct serializing there.
You can enable an FPS display with F11.
Also there is a test-suite for speeds, but ... uhm, have to figure out myself again how to run that.
edit: You run tests by passing parameter -test=NAME where NAME must be a file in the tests folder containing the tests to run. To get good info you likely have to compile Irrlicht with profiling enabled (_IRR_COMPILE_WITH_PROFILING_ in IrrCompileConfig.h).
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

@CuteAlien
Wow! That worked a lot faster than I expected :-) You can enable an FPS display with F11.
Do test with all details on , in first level (tutorial one):

640x480: 95 fps
800x600: 50 fps
1920x1080: 45 fps

So in 1920x1080 very playable

What i only miss, is:

1. ability to change between window/full scren from the menu.
2. make "esc' key works to back to the roots menu from sub menus
3. auto-change of screenmodes without need to exit/run hcraft

Is there any way to choice window/fullscreen ? Maybe from command line ?
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: H-Craft Championship Open Source

Post by CuteAlien »

Yeah, changing Windowed/Fullscreen at runtime is pretty tricky. You lose GL context when doing that, so textures become invalid. You can change it only in media/config.xml currently (set fullscreen to 0)
Sorry about "ESC" key doing nothing, but you got the code :-)
And 3. is again tricky to do at runtime
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

But should to say game is VERY polished. I assume because it was commercical ?:) As for window mode i think about adding command line parametr, so when it set it just will create window (by setting params.fullscreen to false)
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: H-Craft Championship Open Source

Post by CuteAlien »

Thanks, professional artist makes all the difference.
Hm, yeah, command-line parameter for this is a good idea.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

Btw, notice 2 times a crash, when i pass the level, and want to start another one.

In console i have that when crash happens:

Code: Select all

 
assertion "mTrackMarkerReached >= 0 && mTrackMarkerReached < (int)aiTrack.GetNumTrackInfos()" failed: file "player.cpp", line 315
 
And then shutdown (without cleanup of resources , but that not big deal).

Are you meet with such issue any time ? Or maybe have a clue what it can be ?

I build whole hcraft source with just -O2 , so maybe one of those which i didn't use , but which are used to build linux version "-fexpensive-optimizations -fno-strict-aliasing -Wno-unused-parameter -fno-rtti -fno-exceptions" can be guilty for such issue ?
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: H-Craft Championship Open Source

Post by CuteAlien »

Hm, no never had that one. No idea right now. Don't know if compile-flags make a difference.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
kas1e
Posts: 212
Joined: Sun Jan 21, 2018 8:39 am

Re: H-Craft Championship Open Source

Post by kas1e »

And while it show that crash, usually the crashed process are openall , but that can be because of shutdown happens, so cleanup didn't happens and openall crashes after. Will try to recompile all with those compiler flags.

EDIT: nope, same crash with all those flags :(

EDIT2: so its 100% reproducable, i most of time crash on 5st level of champinship when i about to press "start race" (but didn't). But only when i start game and play whole 4st first levels. If i run game from scratch and choice "continue championship", then i almost never crashes (very rare).

So i run hcraft firstly as it, and play first 4 levels before crash, and that what i have in log file then:
compiled date Oct 12 2019
compiled time 22:09:47
SDL Version 1.2.15Desktop width:1920
Desktop height:1080
Desktop depth:24
createDevice
Resolution width:1920
Resolution height:1080
Resolution depth:32
createDevice ok
mGui->Init
OPEN_AL
AL_VERSION: 1.1 ALSOFT 1.18.2
AL_RENDERER: OpenAL Soft
AL_VENDOR: OpenAL Community
Loading menu dialogs
Warning: GetAllGhostRecordsFromDisk: changeWorkingDirectoryTo failed
No functor created for unknown GUI element: sld_lights
No functor created for unknown GUI element: sld_texture_resolution
Init finished
MODE_GUI enabled
start running
mesh had no triangle selector: /Work/games/hcraft/media/levels/tutorial01.lmo
mesh had no triangle selector: /Work/games/hcraft/media/levels/tutorial01.lmo
mesh had no triangle selector: /Work/games/hcraft/media/levels/tutorial01.lmo
mesh had no triangle selector: /Work/games/hcraft/media/levels/track26.lmo
mesh had no triangle selector: /Work/games/hcraft/media/levels/track05.lmo
mesh had no triangle selector: /Work/games/hcraft/media/levels/track01.lmo

Then i run hcraft as "hcraft -logfile=0", and also play first 4st level till crash on 5st loading/starting happens, and there is whole log:

http://kas1e.mikendezign.com/aos4/gl4es ... g_full.txt

But didn't see there anything which can point out on the error. Only that in console before crash i have that :

Code: Select all

 
assertion "mTrackMarkerReached >= 0 && mTrackMarkerReached < (int)aiTrack.GetNumTrackInfos()" failed: file "player.cpp", line 315
 
And i never had anything of that kind on any other level.
Last edited by kas1e on Mon Oct 14, 2019 9:28 am, edited 1 time in total.
Post Reply