Jump to content

Canardia

Developers
  • Posts

    4,127
  • Joined

  • Last visited

Posts posted by Canardia

  1. ..ill think twice about that..and also, remember that compiler is nothing but handwritten code..

    Handwritten yes, but handwritten by many people. A single people can not do such optimizations by hand in assembler. Unless he writes a assembler optimizing language, which C and FORTRAN was made for - to have a faster assembler than hand written by a single person.

  2. Every bit counts. And 1 million iterations is quite low because I usually make speed tests with 10 billion iterations to get a worthy difference.

    Anyway, I'm not concerned about little speed differences at all, especially if they don't matter to the user at all.

    It's more a question of the path of decision. When I test something, then I use the results to show the right path for my decision. And then I stay on that decision, because it is a tested decision.

    Kinda like Zen programming :)

  3. Try to compile sdl_net from source, then you will see what I mean. SDL does not need directx, it just offers it as an option, which is quite stupid imo, because opengl wins directx in every aspect. Maybe I shouldn't use Windows, because library sources are so much harder to compile than on Linux (especially when everyone is using VS2008, which compiles and creates much slower exes than MinGW using the -O6 super optimization (it's not mentioned anywhere, but try it, if you don't believe me, it creates faster code than -O3)).

     

    It was kinda a shock to me to hear that Google Chrome actually uses DirectX9 to render WebGL, and the reason for that is the same as why Crysis uses DirectX: they were not informed that Josh caused ATI to fix the OpenGL drivers.

     

    Now even Carmack thinks that DirectX has some future, but this time he is wrong.

    I think Joshua will soon replace John Carmack as the buddha of 3D technologies smile.png

    When Leadwerks3D comes out, a lot of technologies will suddenly be obsolete, because they just don't do it as elegantly.

     

    There is no excuse not to do things elegantly.

  4. Easyness is also one of my main paradigms. Easyness + Speed + Small Size = Elegance. The classical definiton of Elegance is Effectiveness + Simplicity, which describes the same in a general context. Actually the classical definition describes it better, because effectiviness contains speed smile.png

     

    Damn, so can I say, I am so extreme in my opinions only because I aim for elegance?

    Is that it?

    That would explain why I like Linux over Windows also, it's all just because of elegance.

  5. Damn, I was silently doing one of those too. I thought you were doing SDL_net?

     

    For reference though, I was only considering IPv4.

    I know you were doing that.

    Haha, like in our Debian chat, I think we are switching poles (well, the earth is switching poles also) smile.png

    I tried sdl_net again, and was horrified that it actually needed sdl! And then sdl needed directx, wtf?

    SDL is ****. FreeGLUT is good, WinSock is good. I tested today USA to FI network speeds with WinSock, and like Rick said, indeed UDP is a bit faster, but very little. We are talking about 125s TCP vs 121s UDP, and knowing that TCP is reliable, it kinda is faster than UDP. I still haven't managed to get WinSock 2.2 (=IPv6/IPv4) faster than WinSock 1.2 (=IPv4 only), so I might just use WinSock 1.2 to get the worlds fastest networking library. I love speed, nothing else, it can be ugly as hell, as long it's the fastest and most reliable.

  6. You can't declare virtual methods in the cpp file, they work only in headers. It's like somekind of religion, totally fake.

    So you must put all the code into the header, or go back to my gnostic method of programming fast programs.

  7. Assembler is not cross-platform, and with normal coding, it's also slower than C/C++, because the compilers do insane optimizations which nobody can do by hand in assembler. Speed was an issue earlier, then there were times when PCs were fast (when Doom3 came out, and then again when Crysis 1 came out), and now they are slow again, because everyone buys the cheapest laptop they can get, so speed IS an issue. It's the game industry which dictates what PCs are sold. If nobody makes AAA games, nobody produces AAA PCs; and not the other way around.

     

    Here's a realistic example. I am normal customer who wants to play BF3, so I go to a computer shop and ask for a PC which can run this game well. I also want to play with my friends in the new AAA MMO, so the computer should run that too. Then I get an AAA PC, and the number of low end PCs goes down by 1 on the global market.

     

    I remember when we had like 50 people in our WoW guild, and they had the highest spec AAA PCs because playing WoW was very important to them, because all IRL friends played it too (and nobody had time for facebook because of the raiding and forum tactics topics), and they didn't want to lose some hard earned epix because of slow graphics or sluggish computer.

     

    Today all IRL friends are on facebook, and play facebook games, so nobody buys AAA PCs anymore.

     

    So facebook killed the AAA PCs, and PC gaming. Now facebook even wants to kill AAA phones too, by making their own iPhone clone. They already hired a bunch of Apple employees, which I heard on rock radio today.

  8. You can make seperate lists for each class, that works fine, and makes faster code. Then you have can have one method which loops through all the class lists. Also for memory allocation you should never use "new" or "malloc"; but always "alloca", because it uses fast linear stack memory and not slow fragmented heap memory.

  9. You are wrong Roland.

    Virtual is never needed in C++, and it only creates bloated and slow code.

    I just tried this example and it works fine, it prints:

    Cow

    Horse

     

    
    #include <cstdio>
    
    class GUI
    {
    public:
    void Draw()
    {
    printf("Cown");
    }
    };
    
    class Child : public GUI
    {
    public:
    void Draw()
    {
    GUI::Draw();
    printf("Horsen");
    }
    };
    
    int main()
    {
    Child tia;
    tia.Draw();
    }
    

  10. Doesn't matter if it's at the beginning or somewhere else in the method, but yeah, usually it's in the beginning because of practical reasons, that the coder wants the base class done first and then only add his own stuff to it.

     

    Your question is a bit wierd, so I'm not sure if you understood my first answer. What I meant is that you have a child class method like this:

    class GUI
    {
       public:
       void Draw()
       {
           DrawBox();
       }
    };
    
    class MyChild : public GUI
    {
    public:
    void Draw()
    {
    	GUI::Draw();
    	DrawCircle();
    }
    };

  11. GUI::Draw();
    

    When this is used inside a child class, it doesn't need to be a static method, but it will actually call the instanced base class' method (which is kinda not instanced alone, but fusioned into one instanced with the child class).

  12. For the 3rd release of Leadwerks3D I want the following things:

    1) Far range shadows without pixelation, and also with distance blur.

    2) Sound collisions, reflections and refractions. Also doppler effects.

    3) Mirrors and realtime cubemaps. Also wet shader using realtime cubemaps.

    4) png support.

    5) 7-zip support

    6) incbin support, so that we can make single exe files

    7) native 32-bit and 64-bit debian support

    8) verlet physics based particles (although I think I rather make this myself)

  13. I hope the internal networking can be turned off though, because we want to use also other networking libs, and other physics libs. Or I can recompile it without the HAVE_LE3_NETWORK define smile.png

     

    Actually I was thinking, there should be a Leadwerks3D full feature version, and a Leadwerks3D core version, which has only the renderer. Technically it's the same source code, but the full version is compiled with all those standard HAVE_FEATURE defines.

  14. Amazing, it works!

    I found out a new way to make super fast C/C++ libraries for BlitzMax.

    You just create a static library in C++, and then you can use the arch file directly in BlitzMax:

    SuperStrict
    Module Siipi.Fastnet
    Import "libfastnet.a"
    Extern
    Function FastnetPrint:Int()
    EndExtern
    Type Fastnet
    Method Info:Int()
    	FastnetPrint
    EndMethod
    EndType
    

    This has the benefit, that you don't need to write horrible dll wrappers, which don't support typedefs and other fancy C++ stuff, and your BlitzMax game is just one single exe, with no ugly dlls hanging around.

     

    Then your actual game uses Fastnet like this:

    SuperStrict
    Import Siipi.Fastnet
    Global net:Fastnet=New Fastnet
    net.Info
    

     

    Leadwerks3D can be used the same way directly in BlitzMax, without needing to use an engine.dll.

  15. That sounds like a comment from someone who comes from a PC and console gaming background and really doesn't understand the mobile market place, it's not and never has been about playing 3D games! I have 3D games on my mobile, they are unplayable imo ... it's just not enjoyable on small devices which is why the majority of sales are for simple 2D based games.

    I played one 3D futuristic racer game an Android, and it was way better than any 2D game I've ever played on mobile. The touchscreen is quite horrible for games, so you should rely only on 3D tilt movements of the phone.

     

    My Galaxy S2 screen is also much too small to play games or piano or guiter decently on it, so games should be rather designed for a 10 inch Android screen. And the iPhone screen is even smaller.

  16. We don't NEED advanced features for mobile, don't you see. million+ copies sold of a 2D scroller and you are worried about 'advanced features'. All you need is to *get out there and do it*. Realtime shadows, higher poly counts etc only bring higher dev costs, not higher sales.

    The market is full of 2D **** games, that's why nobody buys them. There is no engine on the market yet which can do decent 3D graphics on mobile, and that brings a new market opportunity.
×
×
  • Create New...