-
Posts
4,127 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by Canardia
-
But then the problem with people complaining that there are so cool tutorials in C++ or in BlitzMax, and not in the other language will never go away. And since it's possible to solve that problem I would put some efforts in it. The tutorials could be even written in a pseudo language, and then there would be a converter (it can be right on the website) which converts the pseudo language to the wanted target language. Or then the pseudo language is not even shown, but the user can select in which language he wants to view the tutorials and it would show them on the fly converted from the tutorial source pseudo language.
-
There can be a seperate newbie to pro language tutorial also, which can use LE elements to show the relevance to LE also, so the newbie would learn what is a language element and what is a LE element, after all the idea of an game engine is not to teach people the basics of programming. And/or there can be seperate Beginners and Advanced tutorials.
-
I would rather focus and categorize by the feature which a program shows, and not on the language itself. There can be a separate tutorial how to convert BlitzMax code to C++ and vice versa, then it doesn't matter in which language the example is written. And in most cases you don't copy the whole example anyway, but just a few lines which you need, and those few lines are almost always identical between languages if they use LE commands, and if few characters are different, it's a no-brainer to change them. For example in a BlitzMax tutorial you see this code chunk to paint an entity: PaintEntity(e,LoadMaterial("abstract::cobbestones.mat")); Since the semicolon was already added in BlitzMax, the code is identical in C++.
-
Well then just Programming and Scripting. I wouldn't seperate by language, because then there will be 300 different language sections all doing the same thing, in BlitzMax people just don't add the semicolon at the end of line (although they could), else it's identical with C++
-
I wouldn't say C++ Programming and Script Programming, but Game Programming and Game Scripting.
-
Yeah a second Category level is needed for Tutorials. At the moment it looks like this would be suitable: Tutorials Official Tutorials Community Tutorials Guides Modelling Programming
-
I'm working on a file explorer, which will allow you to give virtual names to files. Often you have read-only medias and want to rename files, so it would allow you to do that. Programs can then access the virtual names from a sqlite3 database, which would also allow virtual volumes, like in Amiga. Virtual volumes are useful, when you have for example a collection of 100 CDs, and you want to have their files listed on your file directory as if they were all inserted into your PC. If you then access a file which is on a volumen which is not mounted, it would ask you to insert the corresponding CD.
-
They will change your game behaviour and gaming experience also dramatically. For traditional game behaviour I could also add: - Casting of spells (also real life spells like Hypnosis and Moses' 7th book) - Quantum Teleportation (the player can move from any place to any place instantly, kinda like Portal, but with more freedom) - Run/Sprint/Jump exhaustion. In most games you can run at full speed forever (and especially jump forever like in WoW), which kinda ruins the gameplay. - Food/Drink needs, and also their counterparts (when the body has used them) - Real life skills based gameplay (the player needs to know what to do in the game also, for example how to hold a knife, how to assemble something, etc...)
-
WebCam detected movement (for example FreeTrack, Flexman is using it already) Kinect (around Dec 2010) 3D sound based gaming (not much visual aids) Brainwave based controlling (already worked on C64)
-
I think the C wrapper serves only as reference how to implement the DLL interface for other languages, and is not really meant to be used directly. From that reference, people can then make OOP or procedural headers for other languages.
-
Yes, the C notation has been always cross-language compatible. And it's possible to make the C++/OOP notation also cross-language compatible by using references instead of pointers. It doesn't change anything in the engine though, it's just a different way how the user can use LE. But this is actually cool, since now both old skool C++ programmers: ClassName* object = new ClassName(); object->Method(); and new skool C++ programmers: ClassName& object = ClassName(); object.Method(); and ClassName object; object.Method(); can use it. The documentation can use either syntax, although I would prefer the latter style, since I think it looks ugly to use "->" instead of ".", besides it's more to type
-
But this whole thread IS about new or not to new. It says in the title "Documentation", and the documentation will need to use either new, reference (same as new, just modern way to do it), or the old Create() style: So I suppose we are discussing now the content of the documentation, since the documentation site has been already done with custom mysql database.
-
You are calling Mesh destructor twice, since Mesh is a base class of Cube. It should be: Mesh& cube = Cube(Vec3(0,0,1)); I tested it with this code: #include <iostream> using namespace std; class Mesh { public: Mesh(){cout<<"mesh initialized"<<endl;} virtual ~Mesh(){cout<<"mesh uninitialized"<<endl;} }; class Cube : public Mesh { public: Cube(){cout<<"cube shape created"<<endl;} virtual ~Cube(){cout<<"cube shape destroyed"<<endl;} }; int main() { Mesh& cube = Cube(); }
-
I'm never going to use new since it breaks the dot notation of OOP, and I want cross-language compatible code, so I can copy paste from C++ to BlitzMax, Lua, and other OOP languages. Besides, other engines use Create() too, so it's also slowly getting an industrial standard. Even if the tutorials use new, I can still use scope allocations: Tutorial: Mesh* cube=new Cube(); Vec3* v=new Vec3(0,0,1); cube->Move(v); delete v; delete cube; My Way: Mesh cube; cube.Move(Vec3(0,0,1)); The only difficulty in My Way when LE is using new notation, is to create global objects, but it can be done with deferred instancing: map<string,World> world; map<string,Mesh> mesh; void deferred_init(void) { World world; world["main"]=world; Cube cube; mesh["cube"]=cube; } int main() { deferred_init(); mesh["cube"].Move(Vec3(0,0,1)); } And I can even use references to make it faster than with pointers: int main() { deferred_init(); Cube& cube=mesh["cube"]; cube.Move(Vec3(0,0,1)); } So actually this is a cool new way to do things, since you don't need to call a slow ForEachEntityDo() anymore, but can access directly each entity by name, without any looping and finding.
-
They never have been, on terrain yes, but only when you run in Release mode with Ctrl-F5. I will do all particles with 3D meshes anyway, so screw those FPS eating 2D sprites. I need rain also to collide with ceilings, so 2D sprites are useless for real games.
-
2.32R5 is the best, only skycam rotation (should let user rotate it) and terrain height changing is broken.
-
Ah OK, it works also when you move the mouse left or right about 10cm on the table.
-
I put the exe in some empty folder, and run it. It starts with a light gray screen, and then you need to press Ctrl-Alt-Del to bring up Task Manager, then press Alt-Tab a few times and then left click on the game window, and it works!
-
Please update your drivers!
-
Internally STL map uses also new, but the user doesn't have to know it, and to deal with ugly forgotten delete instructions, plus setting the pointer manually to NULL after that. You could use STL containers for all variables, then you have also the possibility to loop through all your variables, and to lookup them. It would allow you to save/load the program state from disk also. Having all objects randomly spread out through the code without any kind of control when they are created and deleted, is not so good.
-
Yes, but I showed also that new and Create() is both not needed. I just use a STL map and set values into it. You can do the same for any objects: worldmap["cube1"]=Cube; // Cube class has constructor which creates it, and then // deletes after the map has got it worldmap["oildrum1"]=LoadModel("oildrum.gmf");
-
You can do it even easier, like I did in my GUI: GUI gui; gui.AddWindow("About"); gui.AddButton("About","OK"); Then you can check if the button was pressed: if( gui.ButtonClicked("About","OK") ) { }
-
Yeah, the cool thing is that LE allows both procedural and OOP coding, and you can even use both at the same time. I do also code in first place procedural, since it needs less thinking. I just want to code first, and then later on make it nice and shiny by converting to OOP syntax, if I have time and will. Otherwise, it just remains procedural and nobody will ever know the difference
-
I think the new GTX 200, 300, 400 series are not too bad either. If you think a GTX 480 for $480 is fairly priced, why not. When I buy a new graphics card, I look what is the most expensive I can find, and I don't look at the specs at all. Then I keep it for 5-10 years and are happy with it. In the end, it's much cheaper than to upgrade your card every year. Now I have still my 8800 GTS 640MB which was the most expensive card I could find in 2007, and I think it will still beat about 80% of all graphics cards on the market for the next 2-3 years. It's the same with servers. You can buy a new Intel server every 3 years, or you can buy a IBM System p server which lasts for 20 years. In the end, you save about 50% of the money with the IBM System p. So that would be a save of around $50000.
-
It's not wierd at all. For a non-programmer, the first level of awareness comes from understanding how programming works at all. The second level of awareness comes from understanding how OOP works at all. Once you understand those, you understand all programming languages more or less.