Jump to content

Leadwerks Community GameLib


Canardia
 Share

Recommended Posts

Yes, but of course you need to assign the player first, see Power Tutorial.

 

 

Already had, but trying to load a scene from the editor caused a crash when running .. seems the info_playerstart in the editor saves something to the sbx thats not liked.. copying all the settings from the demo map after the ID number and replacing what was saved after the id number in the new map fixed the crash.

AMD Bulldozer FX-4 Quad Core 4100 Black Edition

2 x 4GB DDR3 1333Mhz Memory

Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5

Windows 7 Home 64 bit

 

BlitzMax 1.50 • Lua 5.1 MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro

3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET

 

LE 2.5/3.4 • Skyline UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0

 

Marleys Ghost's YouTube Channel Marleys Ghost's Blog

 

"I used to be alive like you .... then I took an arrow to the head"

Link to comment
Share on other sites

I tell you a secret: the engine actually crashes in most cases, not gamelib :)

It crashes on UpdateFramework(), so there's not much I can do about it, except to make a reproducable demo and send it to Josh.

But also in most cases you can fix that crashing by using Editor's entities, somehow LE 2.3 doesn't like old Sandbox scenes.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

I tell you a secret: the engine actually crashes in most cases, not gamelib :)

 

So you say, but I am not so sure there is not a conflict of interest involved :)

 

 

It crashes on UpdateFramework(), so there's not much I can do about it, except to make a reproducable demo and send it to Josh.

But also in most cases you can fix that crashing by using Editor's entities, somehow LE 2.3 doesn't like old Sandbox scenes.

 

I was not using an old sandbox scene, and only the current SDK's entities/materials ect. were being used. The problem was the information from the info_playerstart entity (downloaded from the wiki PT) that was saved to the new maps .sbx, by copying all the settings from the demo map (downloaded from the wiki PT) after the ID number for path="info_playerstart.gmf" and replacing what was saved after the id number for path="info_playerstart.gmf" in the new map fixed the run error.

AMD Bulldozer FX-4 Quad Core 4100 Black Edition

2 x 4GB DDR3 1333Mhz Memory

Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5

Windows 7 Home 64 bit

 

BlitzMax 1.50 • Lua 5.1 MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro

3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET

 

LE 2.5/3.4 • Skyline UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0

 

Marleys Ghost's YouTube Channel Marleys Ghost's Blog

 

"I used to be alive like you .... then I took an arrow to the head"

Link to comment
Share on other sites

That's wierd, but I can check why it would be different, since the info_playerstart should have an ini file which creates the same entitykeys as the sbx has.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

saving a .sbx file with the info_playerstart entity using the 2.3 editor gives this:

 

	id=66357736
"class"="Model"
"classname"="info_playerstart"
"intensity"="0.5"
"mass"="10.0"
"name"="playerstart_1"

 

the same info in the demo map from the download on the wiki gives:

 

	id=131372840
"class"="Model"
"classname"="info_playerstart"
"intensity"="0.5"
"name"="info_playerstart"

 

 

Using this after the id=xxxxxxxxxxxx fixed the problem of the run error in the new map.

AMD Bulldozer FX-4 Quad Core 4100 Black Edition

2 x 4GB DDR3 1333Mhz Memory

Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5

Windows 7 Home 64 bit

 

BlitzMax 1.50 • Lua 5.1 MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro

3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET

 

LE 2.5/3.4 • Skyline UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0

 

Marleys Ghost's YouTube Channel Marleys Ghost's Blog

 

"I used to be alive like you .... then I took an arrow to the head"

Link to comment
Share on other sites

Well, you have to change at least name="player1" (from the first group tab in Editor), or whatever name you want the player to have. Since in the game code, you ask gamelib for that name with: game.scene.SetCurrentPlayer("player1");

 

Actually the PT uses name="info_playerstart", but I think that's a bit confusing, since it's the classname also. I will change the PT to use "player1" so it's easier to understand.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

does it not take it from classname? thought that was why you wanted a classname key?

AMD Bulldozer FX-4 Quad Core 4100 Black Edition

2 x 4GB DDR3 1333Mhz Memory

Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5

Windows 7 Home 64 bit

 

BlitzMax 1.50 • Lua 5.1 MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro

3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET

 

LE 2.5/3.4 • Skyline UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0

 

Marleys Ghost's YouTube Channel Marleys Ghost's Blog

 

"I used to be alive like you .... then I took an arrow to the head"

Link to comment
Share on other sites

does it not take it from classname? thought that was why you wanted a classname key?

The classname key is used to identify a Player model in a sbx scene. The name key is used to differentiate between different Players.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

well "playerstart_1" is ok .. but if you delete it and then redo it it becomes "playerstart_2" so you might want to mention that in the tute? the name can be changed in the properties.

AMD Bulldozer FX-4 Quad Core 4100 Black Edition

2 x 4GB DDR3 1333Mhz Memory

Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5

Windows 7 Home 64 bit

 

BlitzMax 1.50 • Lua 5.1 MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro

3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET

 

LE 2.5/3.4 • Skyline UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0

 

Marleys Ghost's YouTube Channel Marleys Ghost's Blog

 

"I used to be alive like you .... then I took an arrow to the head"

Link to comment
Share on other sites

Yeah, I was just thinking the same, that I should explain more detailed in the PT what the entitykeys mean.

 

 

no less than 400 words and a small picture should do :lol:

AMD Bulldozer FX-4 Quad Core 4100 Black Edition

2 x 4GB DDR3 1333Mhz Memory

Gigabyte GeForce GTX 550 Ti OC 1024MB GDDR5

Windows 7 Home 64 bit

 

BlitzMax 1.50 • Lua 5.1 MaxGUI 1.41 • UU3D Pro • MessiahStudio Pro • Silo Pro

3D Coat • ShaderMap Pro • Hexagon 2 • Photoshop, Gimp & Paint.NET

 

LE 2.5/3.4 • Skyline UE4 • CE3 SDK • Unity 5 • Esenthel Engine 2.0

 

Marleys Ghost's YouTube Channel Marleys Ghost's Blog

 

"I used to be alive like you .... then I took an arrow to the head"

Link to comment
Share on other sites

GameLib 0.0.17.0 is ready. Have fun with lifting, carrying and dropping models:

game.scene.GetCurrentPlayer()->PickupModel(game.scene,KeyHit(KEY_F));

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

  • 3 weeks later...

GameLib 0.0.18.0 is ready.

 

New features:

  • Player can throw picked up object (no extra coding needed, it's in game.PlayerShoot())
  • Game window has now custom icon, and can be modified for each game
  • Game exe has custom icon too, one for detail view in Explorer and one for Desktop (it is automatically switched)
  • LEO's Engine class is now part of the Game class (game.engine.SetFilters() for example)
  • Game class has now custom Flip method, which allows the game to run using much lower CPU load (game.scene.Flip(sync,sleep))
  • The procedurally generated player_info place holder player model has now a head! :)

So with the integrated LEO Engine class, the main program gets much cleaner:

#include "gamelib.h"

int main()
{
Game game(CREATENOW);		// Initialize the engine (load the DLL)
game.Initialize(640,480);	// Create the graphics window
while(!KeyHit())
{
	game.scene.Update();
	game.scene.Render();
	game.scene.Flip(0);	// Don't wait for sync, don't give time to OS
}
return game.Free();		// Terminate the engine (unload the DLL)
}

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

I'm getting an unhandled exception when I use the new Project Wizard (2.3.1 Beta 4) to create a Gamelib project and execute the application after a successful compile. The unhandled exception is in Window::Create(void) line 8 (hwnd = GetFocus(); )

 

Call Stack:

> SecondSquad-Debug.exe!Window::Create() Line 8 + 0x12 bytes C++

SecondSquad-Debug.exe!TScene::Initialize(int sx0=1024, int sy0=768, int fullscreen=0) Line 353 C++

SecondSquad-Debug.exe!Game::Initialize(int sx0=1024, int sy0=768, int fullscreen=0) Line 542 C++

SecondSquad-Debug.exe!main() Line 28 C++

SecondSquad-Debug.exe!__tmainCRTStartup() Line 586 + 0x19 bytes C

SecondSquad-Debug.exe!mainCRTStartup() Line 403 C

 

Any suggestions would be great.

Link to comment
Share on other sites

Read the hotfix: http://leadwerks.com/werkspace/index.php?/topic/483-leadwerks-community-gamelib/page__view__findpost__p__4331

Known bugs:
  • Pointer to Game class in TScene::Initialize() is not initialized and crashes gamelib.
    To fix this bug, copy line 542 (scene.game=this;) in gamelib.cpp as new line before line 541.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

GameLib 0.0.19.0 is ready.

 

See the release notes here:

http://leadwerks.com/werkspace/index.php?/topic/483-leadwerks-community-gamelib/

 

It has been tested with LE 2.31, but LE 2.0 should still work with it, although I don't have time to test it with LE 2.0.

 

What can I say, it's the best version so far :)

The next version will be 0.1.0.0, as it's finally used for a game project (LCP1).

 

The version point raise to 0.1 means also that everything should work as it is, and it can be integrated with any game, while you can always escape to all other engine layer commands at any point (procedural C++, OOP LEO).

 

The trend is going to have more seperate class files instead of a monolithic source code, and it was already started with version 0.0.18.0. This allows users to use their completely own versions of cpp class files while not needing to alter the main gamelib source at all.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...