Portalized (GUI update)
-
fifi
- Gnoblar
- Posts: 13
- Joined: Wed Apr 16, 2008 6:20 pm
-
nullsquared
- Old One
- Posts: 3245
- Joined: Tue Apr 24, 2007 8:23 pm
- Location: NY, NY, USA
- x 11
If I'm not posting it, then don't try it. Way old, full of bugs and crap, and barely anything like the current state of the engine. I provide no support for it (either it runs or it doesn't), so, to save both you and me a lot of trouble, just forget it and wait for the next public release.fifi wrote:Eriksrocks, could you give me a link to this dev build of Portalized on Dev or Facepunch?It would be fantastic!
-
fifi
- Gnoblar
- Posts: 13
- Joined: Wed Apr 16, 2008 6:20 pm
-
detox
- Greenskin
- Posts: 103
- Joined: Thu Sep 07, 2006 1:13 am
- Location: Ohio, USA
Fantastic project nullsquared. I'm a fannullsquared wrote:Not so sure about that. According to the commentaries, they used some kind of "unified space" or "bubble" where the two portals met - if this is indeed how they did it, they can only ever have 2 portals interconnect with each other, and not form a chain. Also, I was much referring to Narbacular Drop thereeugen wrote:i believe the 1-1 link in Portal was due to gameplay considerents, im pretty sure they can link portals in a chain
[...]
I played through Portal and listened to the devs commentary too. I remember the commentary about the portal dynamics too, it was very interesting. I believe you are correct, they created some actual game-space beyond the portals. I remember the commentator said it was due to an issue they had with integrating their physics system, and maintaining a "nice" motion through the portals.
I am guessing, but I think this is really an issue with their physics system and how they chose to model the physics of the player character.
I think maybe even using their technique it may be possible to link multiple portals without difficulty, as long as you do not have multiple objects entering the portals at the same time - multiplayer or something similar.
-
nullsquared
- Old One
- Posts: 3245
- Joined: Tue Apr 24, 2007 8:23 pm
- Location: NY, NY, USA
- x 11
One of the points in my engine being, you can make big portals and transport tons of objects at once.detox wrote: I think maybe even using their technique it may be possible to link multiple portals without difficulty, as long as you do not have multiple objects entering the portals at the same time - multiplayer or something similar.
-
fifi
- Gnoblar
- Posts: 13
- Joined: Wed Apr 16, 2008 6:20 pm
-
Eriksrocks
- Gnoblar
- Posts: 17
- Joined: Sun Mar 23, 2008 9:28 pm
-
eugen
- OGRE Expert User

- Posts: 1422
- Joined: Sat May 22, 2004 5:28 am
- Location: Bucharest
- x 8
-
Eriksrocks
- Gnoblar
- Posts: 17
- Joined: Sun Mar 23, 2008 9:28 pm
You may also want to check out the FacePunch thread, it's been updated much more recently! 
http://forums.facepunchstudios.com/show ... 09&page=19
http://forums.facepunchstudios.com/show ... 09&page=19
-
nullsquared
- Old One
- Posts: 3245
- Joined: Tue Apr 24, 2007 8:23 pm
- Location: NY, NY, USA
- x 11
Yeah, sorry about that, I tend to update random threads at random intervals. Currently I'm rewriting some parts of the engine since it was getting a bit hard to maintain (which is never a good thing, especially when you're the one writing it). Too many singletons, and everything knew about everything, and it became an ugly mess. I used to have discussions about this one gamedev without ever understanding what the pros were trying to explain, but as I kept on coding I'm starting to understand what they were trying to explain.
Big pluses due to maintainability:
- I managed to rewrite about 50% of the engine using the new code base design in about 2-3 days (compare that to the months of coding for the old code base using the old design of mine)
- lots of very readable and intuitive code. Just the basics of it, including a full GUI with selective rendering (w00t QuickGUI
) and physics:
- due to the new design of the code base, there's very tight coupling with Lua:
- easier gameplay coding
Big pluses due to maintainability:
- I managed to rewrite about 50% of the engine using the new code base design in about 2-3 days (compare that to the months of coding for the old code base using the old design of mine)
- lots of very readable and intuitive code. Just the basics of it, including a full GUI with selective rendering (w00t QuickGUI
Code: Select all
int main(int argc, char **argv)
{
engine::renderer *renderer = NULL;
try
{
renderer = new engine::renderer(engine::DATA_DIR + "renderer.xml");
}
catch (const std::exception &e)
{
std::cerr << "ERROR: " << e.what() << "\n";
}
Ogre::ResourceGroupManager &rgm = Ogre::ResourceGroupManager::getSingleton();
rgm.addResourceLocation(engine::DATA_DIR, "FileSystem", "General");
rgm.initialiseResourceGroup("General");
engine::input input(renderer->hwnd());
input.resize(renderer->width(), renderer->height());
engine::gui *gui = new engine::gui(renderer->viewport());
// gui input dispatcher
engine::guiDisp *guiDisp = new engine::guiDisp(*gui);
// let our basic gui input dispatcher grab the current input
input.grab(guiDisp, guiDisp);
engine::physWorld physWorld;
physWorld.freq(1.0 / 60.0); // step physics at 60 FPS
engine::timer timer;
while (renderer->windowIsOpen())
{
renderer->begin();
input.capture();
timer.tick();
physWorld.tick(timer.delta());
renderer->render();
gui->render(renderer->viewport());
renderer->end();
}
delete guiDisp;
delete gui;
delete renderer;
}
Code: Select all
-- camera is Ogre::Camera, vec3 is Ogre::Vector3
camera:pos(vec3(10, 10, 10))
camera:look(vec3(0, 0, 0))
prop = physProp("prop", rootSceneNode, physWorld);
-- load from a script
prop:parse(DATA_DIR .. "props/box.xml")
prop:pos(vec3(0, 10, 0))
prop:impulse(vec3(0, -5, 0))
prop:mass(10)
-- step physics at, say, 30 FPS (just an example again)
physWorld:freq(1.0 / 30.0);
function tick(dt)
-- slow motion works seamless with the whole
-- engine, without choppy physics (as in the "fix your timestep" article)
if keyDown("-")
timer.speed = timer.speed - dt
end
if keyDown("+")
timer.speed = timer.speed + dt
end
end
-
hpesoj
- Halfling
- Posts: 99
- Joined: Fri Dec 07, 2007 8:47 pm
- Location: Bristol, UK
Mmmm, glowing stuff. It's really funny some of the abuse you get thrown at you in your other threads. Odd how this doesn't happen on these forums.
I am working on something quite similar to your engine at the moment (Ogre + Newton + Lua), albeit without the whole portal thing
. I'm interested in knowing how you are handling your "entities" internally. I have most recently gone down the smart pointers route, mainly because I want to make it as hard as possible to crash the engine via script. With regular pointers to objects, it's easy to end up with a Lua reference to a deleted object. Problem is that my code is steadily getting more and more complicated, and to add even simple features is a chore. It'd be cool to know how you have organized things in your engine.
Joe
I am working on something quite similar to your engine at the moment (Ogre + Newton + Lua), albeit without the whole portal thing
Joe

-
nullsquared
- Old One
- Posts: 3245
- Joined: Tue Apr 24, 2007 8:23 pm
- Location: NY, NY, USA
- x 11
These forums are definately a lot mature than facepunch. On FP you either have "woah 1337 epic awesome woah omg rofl awesome!", or you have the other end "lol noob sucks stupid portal is so much better noob lol".hpesoj wrote:Mmmm, glowing stuff. It's really funny some of the abuse you get thrown at you in your other threads. Odd how this doesn't happen on these forums.
Newton Archimedia? Definately use the betas (PM Julio), don't stick with 1.53 (just making sureI am working on something quite similar to your engine at the moment (Ogre + Newton + Lua), albeit without the whole portal thing.
Everything in lua is wrapped with boost::shared_ptr (using luabind).I'm interested in knowing how you are handling your "entities" internally. I have most recently gone down the smart pointers route, mainly because I want to make it as hard as possible to crash the engine via script. With regular pointers to objects, it's easy to end up with a Lua reference to a deleted object. Problem is that my code is steadily getting more and more complicated, and to add even simple features is a chore. It'd be cool to know how you have organized things in your engine
-
JeDi
- Gnome
- Posts: 351
- Joined: Thu Oct 21, 2004 1:34 pm
- Location: Diepenbeek, Belgium
- x 3
Great you are teaming up to create a real game out of it. Having seen the tech-demos of your engine, I'm pretty sure the end-result will be mind-blowing.
I also had a quick read at your facepunch thread, and I was amazed of the immature answers you get there. It seems as if everyone there is a bit jealous of your work, and tries to make you look bad. Most of the guys are probably at least ten years older than you and haven't accomplished anything yet. So nothing but respect to you here
Greetz,
JeDi
I also had a quick read at your facepunch thread, and I was amazed of the immature answers you get there. It seems as if everyone there is a bit jealous of your work, and tries to make you look bad. Most of the guys are probably at least ten years older than you and haven't accomplished anything yet. So nothing but respect to you here
Greetz,
JeDi
-
hpesoj
- Halfling
- Posts: 99
- Joined: Fri Dec 07, 2007 8:47 pm
- Location: Bristol, UK
Newton 2.0? Yup, just got the betas seeing as there is no 1.53 library for 64-bit Linux. Looking forward to trying it outNewton Archimedia? Definately use the betas (PM Julio), don't stick with 1.53 (just making sure Wink). Newton Archimedia ran 1000 concave hulls in real time for me. (X2 3800+)
Does this mean that the lifetime of your entities is controlled by the Lua references to them? How would you handle clearing of the scene, just by deleting all Lua references? (this wouldn't be a bad method of course, so long as the Lua code is organized, I'm just curious because I've spent a lot of time thinking about this).Everything in lua is wrapped with boost::shared_ptr (using luabind).

-
nullsquared
- Old One
- Posts: 3245
- Joined: Tue Apr 24, 2007 8:23 pm
- Location: NY, NY, USA
- x 11
Sounds goodhpesoj wrote:Newton 2.0? Yup, just got the betas seeing as there is no 1.53 library for 64-bit Linux. Looking forward to trying it outNewton Archimedia? Definately use the betas (PM Julio), don't stick with 1.53 (just making sure Wink). Newton Archimedia ran 1000 concave hulls in real time for me. (X2 3800+).
Pretty much. To be completely honest, I haven't really figured out the final design here. I'm debating between scripting the whole game in Lua and just having the engine in C++, and between allowing Lua to "listen" on the game in C++. Leaning more towards scripting everything in Lua, since it'll be a crap-load more flexible, and WAY easier.Does this mean that the lifetime of your entities is controlled by the Lua references to them? How would you handle clearing of the scene, just by deleting all Lua references? (this wouldn't be a bad method of course, so long as the Lua code is organized, I'm just curious because I've spent a lot of time thinking about this).Everything in lua is wrapped with boost::shared_ptr (using luabind).
-
nullsquared
- Old One
- Posts: 3245
- Joined: Tue Apr 24, 2007 8:23 pm
- Location: NY, NY, USA
- x 11
I actually never heard about this site of his, but according to his skype and birthdate info, yup, that's him. It's also him over here in the Ogre forums, the guy with the Ubuntu Hardy compilation "guide"Eriksrocks wrote:Just curious, is this the Svenstaro you've teamed up with?
-
Svenstaro
- Greenskin
- Posts: 115
- Joined: Fri Dec 15, 2006 1:30 pm
- Location: Germany
- x 3
-
Noman
- OGRE Retired Team Member

- Posts: 714
- Joined: Mon Jan 31, 2005 7:21 pm
- Location: Israel
- x 2
On the subject of the scripting debate, I'm kinda against scripting entire systems. Not for performance considerations, but for development integrity reasons.
Sometime along the future, somebody will change a feature in a "Core" script (because lots of the system is scripted, there will be a core) and will break something, and it will be very hard to track down.
Debugging from c++ to scripts and stuff like that is rather hard.
In my opinion, it is best to script out the content. Just like the materials can be scripted in ogre (since they are supposed to be created by a technical artist and not a programmer), the parts of the game that should not be created by the programmer should be scripted. High level game rule logic (how do you decide how much damage a shot took), dialogs, level layout and cutscenes should all be made in scripts.
Sometimes its easy to miss the role you are currently filling when working in small teams, because everyone does everything. But when deciding, you should ask yourself "If I had a team of 300 people, would I want a programmer to write this section?", if the answer is yes, don't script it out.
Sometime along the future, somebody will change a feature in a "Core" script (because lots of the system is scripted, there will be a core) and will break something, and it will be very hard to track down.
Debugging from c++ to scripts and stuff like that is rather hard.
In my opinion, it is best to script out the content. Just like the materials can be scripted in ogre (since they are supposed to be created by a technical artist and not a programmer), the parts of the game that should not be created by the programmer should be scripted. High level game rule logic (how do you decide how much damage a shot took), dialogs, level layout and cutscenes should all be made in scripts.
Sometimes its easy to miss the role you are currently filling when working in small teams, because everyone does everything. But when deciding, you should ask yourself "If I had a team of 300 people, would I want a programmer to write this section?", if the answer is yes, don't script it out.
-
Eriksrocks
- Gnoblar
- Posts: 17
- Joined: Sun Mar 23, 2008 9:28 pm
-
Svenstaro
- Greenskin
- Posts: 115
- Joined: Fri Dec 15, 2006 1:30 pm
- Location: Germany
- x 3
-
Svenstaro
- Greenskin
- Posts: 115
- Joined: Fri Dec 15, 2006 1:30 pm
- Location: Germany
- x 3
Okay here we go guys: http://www.portalized.org/
Null and me will release news, screens, videos and what else as they become available. Please, take the time to register yourself on the forums, introduce yourself, ask us a few questions or just give us some feedback.
We'll be waiting
.
Null and me will release news, screens, videos and what else as they become available. Please, take the time to register yourself on the forums, introduce yourself, ask us a few questions or just give us some feedback.
We'll be waiting