IrrLichtRPG - Erring Light

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

Okay, I added handling user disconnect, as well as server disconnect. Its officially 0.0.1, and I have put the code/binary up on my website: http://www.technomagicum.net/projects/IrrLicht/RPG/

From the developer's readme:
IrrlichtRPG - v0.0.1 - Paul Zirkle AKA keless
4.28.05 keless@technomagicum.net

V0.0.1 meets the following milestones of the IRPG project:

Milestone 1 - (COMPLETE v0.0.1) 4.27.05 "basic client-server architecture"

*Client
(100%) resources: load hardcoded entity
(100%) core: accept user input, remove entities not found in WU
(100%) network: send server request, recieve world updates, send user input
(100%) graphics: show level graphics modified by world updates
*Server
(100%) resources: no level
(100%) core: accept client connection / disconnection
(100%) network: send world update, recieve server requests, tested on LAN
(100%) physics: no physics
*Misc
(100%) Incorperate RakNet networking API


I have released this source code so that interested parties may take a look at
the skeleton core of my game on top of ICE as well as my basic client-server
architecture. It has not been extensively tested against rogue packets, button
mashing or other stress testing.

There is certain code which exists to support an as of yet non-existant system.
For instance, the SQLite code is apart of the project but not yet used. The
UserAccountsManager should open up a DB and authenticate the user login, but
currently does not. The entities system should have a whole tree of inherited
entities. The server should be loading in a mesh and doing physics collision
between it and the entities in the world update. The client should be interpolating
entity position between world updates. The world updates should be divided into
key frame world updates (whats currently sent now) that only get sent 2/sec and
delta world updates that only show new movement to save on bandwidth. Not to mention
the entire RPG engine has not even been written. I also did not write special
documentation for this release, but you should be able to make sense of things
fairly easily with what comments I left for myself.
a screen cap is worth 0x100000 DWORDS
katoun
Posts: 239
Joined: Mon Nov 15, 2004 9:39 am
Location: Romania
Contact:

Post by katoun »

Hello
I got the message:

Code: Select all

Not Found
The requested URL /projects/IrrLicht/RPG/download/IrrLichtRPG_0.0.1.zip was not found on this server.
I realy want to see your work.
Is it on sourceforge.I'll go look now for it.
Kat'Oun
katoun
Posts: 239
Joined: Mon Nov 15, 2004 9:39 am
Location: Romania
Contact:

Post by katoun »

No No No it's not working. :cry: :cry: :cry:
Ok, sugestion for non irrlicht physics use ODE (is nicer an opensource on GNU licence)
and for sound OpenAl(because is opens source to and free for all porpouse and has 3D soud and I think it loads mp3 too I think anyway it has EAX suport too)
A for ODE go to the ODE homepage and then push 'users' and you'll get a page with project using ODE and there are some free and opensource like:
Motorsport
Ultimate Stunts
FreeFall Buggy demo
Good luck to your work and please try make the download work if you can.
Kat'Oun
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

I'll go see whats wrong with my HTML :oops:
I think something is wrong with the program though-- becasue while LAN tests work, my Internet test seems to not work. My friend on the client says he can see my object moving in bursts, and his doesnt move at all. Since this doesnt happen in LAN I really dont know why, but I'll figure it out.

Here is a working link:
http://www.technomagicum.net/projects/I ... _0.0.1.zip

EDIT: ridiculous-- its a case-sensitive error.. IrrlichtRPG_0.0.1.zip works, but IrrLichtRPG_0.0.1.zip doesnt .. :P
a screen cap is worth 0x100000 DWORDS
katoun
Posts: 239
Joined: Mon Nov 15, 2004 9:39 am
Location: Romania
Contact:

Post by katoun »

10X
:D
Good luck.
Ah one thing:
dose ICE have the posibility to create an menu gamestate(with new game,load game, save game) that apears when pushing ESC but without exiting the main gamestate just pose it(frezze it) andt the go back into the game .
Well I think that Menu game state should have the same IrrDevice with the Main game state but wouldn't there be a broblem when calling twice smg->drawAll()
or I think there whene Main gamestate poses it dosent call Render and Update function anymore so the problem is solved.(sory just figured it out writing this thread) OK.
Good work and good luck again.
Kat'Oun
natol
Posts: 25
Joined: Fri Aug 13, 2004 5:12 pm
Location: USA, KS

Post by natol »

I just want to say that this project will help me understand alot more on how to implement network and gamestates to my game.

Keep up the great work!!!
katoun
Posts: 239
Joined: Mon Nov 15, 2004 9:39 am
Location: Romania
Contact:

Post by katoun »

Keless.
Sugestion:
At IVideoConfiguration class insted of shutting the device when a modification was made I think 'nicer' would be to drop the device recreate it with the new options and go to the next gamestate(but not exit the game).You now like in games that when you change resolution there is a moment where the screen flikers because the game is re initialzed with the new resolution.
Beside this thing ICE and IrlichtRPG 0.01 are absolutely fantastic :!:
Kat'Oun
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

thanks katoun and natol.

@katoun: yes, if you create a GameState that also inherits from GameStateHandler then that sub-state could be a pause menu. When you create a substate, send the OnEvent and Update calls directly to the substate. One thing you have to be wary of however is creating and deleting scenemanager and GUI objects. In BREW when I have to explicitly load each image and just blit those, this game state heirarchy poses no problem, but in Irrlicht with the abstracted graphics managers you have to be careful.

As for not quitting the application when you change resolutions: that was actually my goal, but I could not get Irrlicht to switch devices without restarting. If you look at the code the logic is simply 'stop current driver and start a new one' but the effect is that it drops the current one, begins the next but immediately exits out. Thats how it was when I originally wrote ICE back in Irrlicht 6 and it seems that it has not changed.
a screen cap is worth 0x100000 DWORDS
katoun
Posts: 239
Joined: Mon Nov 15, 2004 9:39 am
Location: Romania
Contact:

Post by katoun »

You see I took your GameState abstract class and made 2 Gamestates:
SetupIntro and MainGame.And I have GameOptions that hase the config.
I Call SetupIntro to Init and has a pointer(a reference to ) to an Object of type
GameOptions already initialized.
In SetupIntro I modifie config, save(inpicitly in GameOptions too) and exit(returning true to start MainGame or false to not)
MainGame hase an other IrrlichtDevice that initilizes with the option from the GameOptions .
The Object of type GameOtions , the call to init SetupIntro and then call or not MainGame are handled in a class caled GameManager(something like your ICEFramework).
It must work.
I'll see if I can figure out why it exit and that see if I can make it work at it should.
See you later and good work.
Oh it's Easter week , I'll come home on Monday and until than I wont have time to look at ICE souce.
Good luck.
Kat'Oun
katoun
Posts: 239
Joined: Mon Nov 15, 2004 9:39 am
Location: Romania
Contact:

Post by katoun »

keless
As for not quitting the application when you change resolutions: that was actually my goal, but I could not get Irrlicht to switch devices without restarting. If you look at the code the logic is simply 'stop current driver and start a new one' but the effect is that it drops the current one, begins the next but immediately exits out. Thats how it was when I originally wrote ICE back in Irrlicht 6 and it seems that it has not changed.
I think I found the problem but I don't have a solution yet.
You know when you change something in the configuration it calles a messagebox ("A change had been done the device must pe restarted.......")
Well I so in the ICE 3.0 source that when you push on OK it calles handle->RequestDestroy(); RequestDestroy calles Destroy() from the handler witch finaly calls m_device->closeDevice();

You know the examples from IrrlichtSDK.
They have cicle:
While(device->run())
{driver->begin(...);



driver->end();
}
Whell that Loop is 'broken' when you call device->closeDevice() so you can exit( exit all the program because that's how it was written)

To solve that problem I think there is need of a bool value to check is that loop if you changed the device but it is not a good idea.
An other way would be to directly destroy the device so you wouldn't get to thet loop with device NULL because that might be the problem.
I'll if that works( and how do that ).
Kat'Oun
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

thanks for looking into that. if you find something that works, i'll update ICE/IRPG for sure.

Right now i'm looking into the physics portion of IRPG. Checking out Arena of Honor's Newton implementation.
a screen cap is worth 0x100000 DWORDS
RPGlover

Post by RPGlover »

:cry: i cant get on t how i use SuffIt programs how do u use i would realy appreciate it PLZ
DUDE

Post by DUDE »

How u use STUFFIT i wanna play ur game :? :? :? :? 8) 8) 8) 8) Just wondering
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

Guys: LEARN TO READ. Its not a game, its a basic client server demo. I dont event know what stuffit is, but it sounds like an archive program? Go look up the documentation on their website. I used IZArc to zip the files, but any archiver that deals with the ZIP format should work.

And midnight.. go away.
a screen cap is worth 0x100000 DWORDS
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

As an actual update: I am in fact working on IRPG. I'm currently looking at the physics implementation. I've decided to go with ODE over Newton since it has Unix support and Newton currently does not. It also has better documentation, though it will be a little more work to implement.

I recognize that eventually I'll have to write a proper collision culling system for terrain/units eventually (here is a nice thread for large levels I found: http://q12.org/pipermail/ode/2005-April/015749.html ) but for now, I'll be doing a very naive collision implementation just to get the groundwork laid. Its obvious that there are several large sections that I'll have to either re-visit or get some other programers to finalize before the end of this project.
a screen cap is worth 0x100000 DWORDS
Post Reply