CobbleStones Game Engine

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki

Re: CobbleStones Game Engine

Postby AReichl » Wed May 21, 2014 3:32 pm

I have a question - why did you choose PhysX and not e.g. Bullet?
AReichl
 
Posts: 230
Joined: Wed Jul 13, 2011 2:34 pm

Re: CobbleStones Game Engine

Postby Seven » Wed May 21, 2014 4:09 pm

I wrote wrappers for most of the physics engines available (newton, bullet, ode, physx) and had them user selectable at runtime. When all was said and done, I got better performance from PhysX using hardware mode and decided to select a single engine to fully flesh out. I still need to add ragdolls and joints, but it seems fairly simple to do.
Seven
 
Posts: 873
Joined: Mon Nov 14, 2005 2:03 pm

Re: CobbleStones Game Engine

Postby AReichl » Thu May 22, 2014 8:03 am

hmmm - ok.
I only asked because after comparison of physics engines i decided to go for Bullet (PhysX was NOT on my list, hehe).
What about "portability" ? I have the impression, that Bullet would give you the most "flexibility" here. And newer versions also should have some kind of hardware acceleration (not totally sure about that point).
My wish would be, that maybe at a later time you add at least a wrapper for Bullet again (i think you can forget about Newton and ODE).
AReichl
 
Posts: 230
Joined: Wed Jul 13, 2011 2:34 pm

Re: CobbleStones Game Engine

Postby superpws » Thu May 22, 2014 11:16 am

Hi, it's seems nice project! What is the license of it? (if you haven't decided then I recommend zlib or MIT). Regarding github, you should add .gitignore of C++ in your root of repository, that way your .obj/.log wouldn't be uploaded next time you push your repository because .obj/.log etc are pretty much useless to share.
IRC: #irrlicht on irc.freenode.net
Github: https://github.com/danyalzia
Homepage: http://danyalzia.com
superpws
 
Posts: 18
Joined: Mon Mar 31, 2014 6:47 am

Re: CobbleStones Game Engine

Postby Seven » Thu May 22, 2014 7:28 pm

thanks for looking at the project. I havent given any thought to the license so will need to do that.
as for the git stuff, i have no experience in that but will check into it.
Seven
 
Posts: 873
Joined: Mon Nov 14, 2005 2:03 pm

Re: CobbleStones Game Engine

Postby Seven » Mon May 26, 2014 3:06 pm

added some preliminary AI to the character system. Now includes a standard state machine along with a goal system. The goals are maintained in a list inside the 'brain' and attempts to select the current goal based on the situation. Next step is to add multiple goal managers to the brain and switch between them at runtime as needed.

below is an example of the followObject goal.
when the goal is entered, it checks if the character is facing the target object. If it is not, it auto adds a turnandface goal, which is moved to the front of the stack and exectued. Once it returns, this goal continues and moves that character towards the target object. If the character gets too close to the target object, it auto generates an idle goal, which now becomes the active goal. In this case, the character will stop movement and begin and idle animation. Once the idle goal has timed out, the system returns to the follow goal and the character starts mvoement towards the object again.

the end result is that a single goal added to the character
cpp Code: Select all
 
character->getBrain()->getGoalManager()->addGoalBack(new CSAI_Goal_FollowObjectId(character->getBrain()->getGoalManager(), "Follow", false, 921, 100));
 


sets a series of events in motion that produces a semi intelligent character action.
I still need to add a CSLevel class to hold the world 'blackboard' of information.
as things are completed, the trigger system will send messages to the CSLevel and update the blackboard.
Objects will then be notified that something has changed int he world and they can update as needed.
These message will be sent to the brain classes as well, so that the setFinished() functions of the goals can be updated as events happen.
a good example would be a followobjectid() goal. if the player 'releases' the character from helping him, the event would be sent to the blackboard and down to the
brains. the goal would then 'finish' and be removed from the list, as which point the character will return to whatever goal he was assigned prior to the followobjectid goal.

cpp Code: Select all
 
    ////////////////////////////////////////////////////////////////////////////////////
    void CSAI_Goal_FollowObjectId::enter()
    {
        CSObject* target = getLevel()->getObjectPointer(getTargetObject());
        if (!target) { setFailed(true); return; }
                if (!me()->isFacing(target->getAbsolutePosition()))
                    getGoalManager()->addGoalFront(new CSAI_Goal_TurnAndFaceId(getGoalManager(), stringc("TurnAndFace"), false, target->getId()));
    }
 
    void CSAI_Goal_FollowObjectId::update(const float &elapsedtime)
    {
        CSObject* target = getLevel()->getObjectPointer(getTargetObject());
        if (target)
        {
            me()->lookAt(target->getAbsolutePosition());
            if (vector3df(me()->getAbsolutePosition() - target->getAbsolutePosition()).getLength() <= getDistance())
            {
                me()->setVariable("Stop", "1");
                getGoalManager()->addGoalFront(new CSAI_Goal_Idle(getGoalManager(), "Idle", false, 5));
            }
            else
                me()->setVariable("Forward", "1");
        }
    }
    void CSAI_Goal_FollowObjectId::exit()
    {
        me()->setVariable("Stop", "1");
    }
 
Seven
 
Posts: 873
Joined: Mon Nov 14, 2005 2:03 pm

Re: CobbleStones Game Engine

Postby Seven » Thu May 29, 2014 10:33 pm

added CSBlackBoard for world event memory
------ add event to blackboard - defaults to not true
------ poll blackboard as desired to see if event has happened
------------ example : if (getBlackBoard()->getValue("Talked To Seven")) { do something with that knowledge }
also
if event is set to true, blackboard sends event message to announce it occurred
------------ example : getBlackBoard()->setValue("Talked To Seven", true);
---------------- blackboard fires event to world to let everything know that you talked with seven.
.
.
so far so good. Running multiple tests now. will add ability to save, load, copy blackboard in order to have a persistent world
Seven
 
Posts: 873
Joined: Mon Nov 14, 2005 2:03 pm

Re: CobbleStones Game Engine

Postby Seven » Wed Jul 30, 2014 9:26 pm

new and improved....

https://github.com/SevenGameMaker/CobbleStones

cleaned up the github repository and added tester projects to provide clean testbeds for gui components.

tester3 project contains all of the code for the gui enhancements.
reminder : tester3.exe requires that the media folder be two levels up from the exe
../../media
this is due to the room model hardcoded for that path :(

very interested in feedback on the tester3.exe
you can either use the prebuilt exe or copy the code into a new project and build it.
let me know if it doesnt do something that you would expect it to.

I will continue the programming and should have something very nice to contribute soon
Seven
 
Posts: 873
Joined: Mon Nov 14, 2005 2:03 pm

Re: CobbleStones Game Engine

Postby Seven » Sat Aug 02, 2014 2:21 pm

CobbleStones windowing system is now mostly complete. I still need to add drag and drop capability for inventory type systems but should have complete today.

in the mean time, the Tester3 project shows off all of the windowing system functionality.
I restored back to original irrlicht library so no changes at all in that. (I added a clientwindow to the system to allow better clipping instead of exposing the absoluteclippingrect)
I think that I have added a good chunk of the functionality of the Microsoft windows...... we'll see.
double click titlebar for min / max,
resize as desired, resize microsoft window and desktop will resize
right mouse in scene viewer for movement
the menu is just for testing - no functionality in this demo.

the tester3 project is self contained so no need to grab the entire cobblestones project.
reminder - it expects media folder to be two level up from the exe (not my fault, the room file demands this)

check it out at
https://github.com/SevenGameMaker/CobbleStones

you can grab just the tester3.exe from the bin folder if you like and drop it into an irrlicht bin folder. as long as the media is two levels up it should run.

and let me know what does / doesn't work for you.

** updates :
...... added splitter windows
.......added 3d camera
.......added height to toolbar
.......modified toolbar to accept any guielement

*edit
latest and greatest uploaded 8-5-2014

modified pic to reflect changes
https://github.com/SevenGameMaker/CobbleStones/blob/master/_Bin/_Pics/CobbleStones1.jpg
Seven
 
Posts: 873
Joined: Mon Nov 14, 2005 2:03 pm

Re: CobbleStones Game Engine

Postby Seven » Sun Nov 23, 2014 6:13 pm

I have been updating and loading.
latest is uploaded today.

so far so good....
Seven
 
Posts: 873
Joined: Mon Nov 14, 2005 2:03 pm

Previous

Return to Project Announcements

Who is online

Users browsing this forum: No registered users and 1 guest