Page 1 of 2
Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 6:38 pm
by Fractalorangejuice
Lately I've been looking at things like Diablo 3, Bionic Commando Rearmed, Little Big Planet and Super Mario bros.Wii and asked myself if these would be possible with Purebasic. Since Myself doesn't seem to have these answers I thought I might pose them to you. I hear with the right libraries that the only major limitation is my imagination, the number of people working on a project and time but I wonder what libraries are those?
I have a bunch of questions:
In Ogre(as far as the extent it's used in Purebasic is concerned) would it be possible to simulate a reflection by setting up a camera, capturing an image from the scene and then using that as a map on an object or objects? Is it possible to apply color mixing like exposure or tinting to the whole scene by adding a semi transparent plane directly in the front of the camera? And can I use more than (additive/alpha blended/color) color mixing on materials?
Is there any way to access undocumented Ogre switches to affect existing commands. Like Skydome() for example you can't change the speed or direction (as far as I know) which would allow for more degrees of subtlety. I guess I could encapsulate the whole scene in a hollow sphere with an animated texture. Water color seems static and what if I wanted to localize it to a single block instead of the entire horizon or put it on the ceiling or wall? Particles are ok but seem to be missing some color mixing functions and spawning or collisions(I realize this would be quite slow). But I don't know all of what Ogre has to offer I just know what I've seen in some games. I'm sure they write their own custom routines for a lot of these things.
And is it possible to use commands from Ogre and what sort of work would I have to do to make that function? --Steep parallax mapping for example-
As much as I like Purebasic(Which is lot) It just seems like the games I see made with Ogre( with C++) like Torchlight are utilizing modern effects and PB seems pretty basic (no pun intended) in what it does with the built in 3d command set. Are there plans to enhance this or is it just better to try to use N3xtd(seems like I might have to wait a while for it to be ready).
I don't mean in any way to sound ungrateful because I love Purebasic. It's the first language I've used where the syntax is easy for me to parse with my eyes quickly but doesn't run like a cow.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 7:51 pm
by IdeasVacuum
You should be able to find most of your answers by searching this forum, there is a wealth of knowledge imparted.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 10:01 pm
by Fractalorangejuice
The question was not about how to use search engines. I have been reading posts on this forum for almost a year now. Your answer is not helpful. If you have seen specific posts that might answer a question then post a link. If you asked me the meaning of life and I dropped a stack of philosophy books in front of you or told you that there is a wealth of information in the library that might be kind of a non answer. I'd appreciate an instructive answer please. If you want me to clarify a point I will but don't be rude.
Most of the time I don't ask questions. I do hours of research on this site. I built a 2d particle system from scratch and several games from things I read here so I both value and utilize this forum's wealth of knowledge.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 10:25 pm
by rsts
Speaking of rude answers
cheers
now have a go at me

Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 10:51 pm
by Thorium
You don't need any library, they just make things easier because you don't have to program all the stuff your self.
The possibilities are allways only limited by your imagination. Don't matters what programing language you use, as long as it's turing complete.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 11:14 pm
by Kuron
Fractalorangejuice: PB's implementation of Ogre may leave something to be desired for many people.
The good news is, PB is capable of using DLLs, so you can download and use the latest version of Ogre 3D and have all of the latest features at your disposal.
Personally, for 3D, I would choose Leadwerks Engine. It is available as a DLL and will work fine with PureBasic.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 11:20 pm
by Fractalorangejuice
rsts: I'm not looking for some defensive back and forth where I play the bear getting baited. All I'm "requesting" are some helpful ideas from people more experienced than I and "look it up" or "have a go at me" are not helpful to that end.
Thorium: Let's say Ogre helps me access a function of the graphics hardware that PB doesn't have simple commands for. How do utilize that inside of PB without a library? I don't understand the process. I'm not asking for anyone to do the work for me but I don't know where to start. I'll be glad to learn how that process works and learn to program whatever I have to to make it work if there is no other way.
Kuron: Leadwerks Engine 2.3 looks ok it's $200.00 and that's not a bad price. It doesn't look like it has any official support for PB so how would I go about using it? Do I have to write my own "wrapper"(I'm not entirely sure what this is or how to accomplish this) to make it usable in PB? I'm a little concerned by the closed source nature of the physics engine since I'd like to keep my projects open if possible.
In terms of using the latest engine3d.dll (Is this right?) I feel like I have an incomplete idea of how this works. What are the basics of this process?
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Mon Feb 08, 2010 11:58 pm
by Kuron
Kuron: Leadwerks Engine 2.3 looks ok it's $200.00 and that's not a bad price. It doesn't look like it has any official support for PB so how would I go about using it? Do I have to write my own "wrapper"(I'm not entirely sure what this is or how to accomplish this) to make it usable in PB?
There may be wrappers available in the LE community, I am not sure.
The thing you have to realize is for 3D engines, there generally is no demand for PB wrappers or wrappers for other third-party languages. People who buy an engine like that are almost always going to use C++. Josh (the man behind Ledwerks) recently wrote a very good article about this. When using any third-party engine, you will need to write your own wrappers most of the time.
Wrappers are sort of like an import lib for using a DLL, only it is in code form and provides the interface to calling the functions in the DLL.
LE is routinely updated, and Josh works very hard in getting NVIDIA and ATI to actually fix bugs in their drivers.
The problem is no matter how good and full-featured the 3D engine may be, the biggest show stopper for most people is going to be the artwork side of a 3D game.
Everybody has their own opinions on shortcomings in PB. I do not see any on the gaming side. For me, I see it on the app side. I have had PB for years and I would love to use it for apps, but the lack of a working GUI designer has been a show stopper for me. Most don't seem to have an issue with this.
For gaming, I see no shortcomings in PB.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Tue Feb 09, 2010 12:51 am
by Blue Steel
as has been stated in here already (but maybe not as suncsinctly)
any third party engine required wrappers in any language as your writting your code to access theirs. anything you can do in an with an engine you can do without one. (just reduces dev time by heaps if you can fine one that does most of the things your after)
A lot of languages have strong communities that have written wrappers themselves (some are even willing to share) and some languages where the writters of the languages have added inbuilt support for these engines.(eg: Fred or whoever decided to add in ways to access the ORGE engine into PureBasic) sometimes these implimentations / wrappers leave a lot of the functions out and make it difficult to update to the newer versions to use newer features. Most programmers would write their own wrappers (in what ever language they choose) to access the routines they need from these engines.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Tue Feb 09, 2010 2:32 am
by c4s
About this Leadwerks question: Sometimes ago there was a thread about this with the developer Josh.
I don't know what the result of their discussion was but... here is the thread:
http://www.purebasic.fr/english/viewtop ... 16&t=33950
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Tue Feb 09, 2010 6:21 am
by Rescator
To answer the original question. Yes it is possible to create Mass Effect 2 in PureBasic.
The thing is however that even C++ or .NET or whatever is not really used to create the game.
The programming language is bridge between the OS and the middleware.
Few code a game engine from scratch.
So whether you use PureBasic or C++ you will still most likely end up using some render middleware, GUI middleware, network middleware, audio middleware (BASS or FMOD or just OpenAL for example).
Or you end up using a full game engine but write your own dll's to customize it's functionality. (Mass Effect for example which uses a modified Unreal 3 engine)
Now I need to go lookup turing complete on wikipedia again as I always forget exactly hat that means. *laughs*
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Tue Feb 09, 2010 8:36 am
by Fractalorangejuice
Kuron: Pardon my ignorance but how is a wrapper written? For example: Do I use proceduredll to call a command from an external dll used for an engine and then..? Are there any good examples of this around that I could peer into to understand the process. I'm fairly decent with hacking my way through understanding code as long as I understand the principle of how it works.
The Artwork side of it is actually my strength so that skill set is not a disadvantage for me at all. I understand how to rig, model, texture and light characters so I shouldn't have any trouble filling out a game with music and Graphics once I have a framework in place. That's part of the reason why having a lot of options is so important to me. I don't want to have the ability to make really amazing Graphical effects only to have my ideas crippled by limitations of a system made by someone who might not be as interested in the way things look because they have different priorities. That was definitely not a jab. I respect differences of priorities.
Blue Steel: I do appreciate Fred and the team's hard work. The built in support for Ogre is nice but the problem for me is now knowing how much Ogre can do and just wanting to have access to all the fun stuff
If I were to access routines from external engines in purebasic what does that pipeline look like? For example: dll has a command , open dll in pb with pb command, pick dll command from library, create procedure to access command with return variables. And if so how might I view the contents of a dll? Or is it that I need to understand the engine itself and somehow send it information on what I want it to do from pb by knowing it's internal syntax. I know I'm all over the place here but I don't yet understand clearly how this all works. Thanks for your patience.
c4s: Thanks for the link I read through it but it looks like it sort of fizzled out. Also he stated that he didn't have any interest in Linux which kind of limits cross platform support. He did say that he thought it was because linux users don't want to buy applications but I've heard the next version of ubuntu will have a commercial repository as well as a free one so that could change things. Leadwerks uses pixel shader 3 tech which makes it very tempting. But I'd still love to see if there is an open alternative. I don't expect a miracle but I don't want to miss something obvious either.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Tue Feb 09, 2010 9:44 am
by djes
Ogre support in PB is evolving. Every n version see a major update of the engine. I think there should be a new one in some times, the actual is not very powerful. But if your specialty is graphism, you should team with coders, as 3d need good technical knowledge.
BTW, 3D in PB can be natively accomplished with DirectX 9, OpenGL, Ogre (for simplified examples), and any other 3rd party engines (like dreamotion, n3xt-D, or other with wrappers).
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Tue Feb 09, 2010 9:50 am
by Fred
It's no secret than the OGRE integration is far from 'complete' in PureBasic. OGRE itself exposes thousand of methods, so if we want to do a real wrapper, with all the flexibility needed, we would have to expose all these functions (if OGRE have them, there is probably a need for them). PureBasic tries to limit the command so you can get started with 3D and you can go far enough. Now it will become better with newer release, we are working on it.
But seriously, if you want to do Bio Mass 3, with all the work behind it, don't start it in PureBasic or even in any other Basics or similar langages. Go straight in C++, uses OGRE or licence UnrealEngine 3 and start working

. The language here won't make the difference as 99% of your code will be inside the 3D engine framework.
Re: Limitations and Roadblocks in Purebasic for Gamemaking
Posted: Tue Feb 09, 2010 7:19 pm
by J. Baker
Ok, I've been using/testing OGRE with PureBasic since it was added. And it shouldn't be hard at all to create a game with it's current command set that's available. Sure it doesn't have all that's available from OGRE's options but that's no excuse. If you're having a hard time creating something in OGRE (with PB) then you may need to learn PB a little better before continuing.
Things like AI and so forth would be programmed in PB anyway. Now I know from experience, if you're using FreeWorld3D for terrain development, the skybox images are out of order when importing into PB. I'm not sure if that's a PB or FreeWorld3D problem but it's not hard to fix.
I myself have no hesitation of starting a 3D game in PB using OGRE. And I plan to by this fall. As I'm currently starting a 2D project before it. And if the option for OGRE isn't available when start development, it very well could be when you're almost done. 3D games a take some time, as I'm sure you already know.