Jump to content

Canardia

Developers
  • Posts

    4,127
  • Joined

  • Last visited

Blog Entries posted by Canardia

  1. Canardia
    I invented a new programming language called Easy.It's faster than C++ (theoretically), since it inlines everything.I see no point programming in C++ without Easy anymore, since the same and better results can be achieved using this new language.It saves also a lot of time and costs when programming, and it should work also with other languages than C++, if they support variadic macros.Here's the Easy home page:
    http://www.siipi.com/easyEasy is still in version 0.0.3.0 0.0.7.0, but it will grow fast, as every new program I make will be written in Easy.
     
    Source
  2. Canardia
    I introduced my new language earlier in Roland's Wizard thread, so I thought I could explain it a bit more.
    Of course a new language is always seen a bit sceptically by people, and they wonder why is it needed, or what benefits does it bring.
     
    At its first version, Easy is still very simple, and based on Variadic Macros (macros which can take a dynamic amount of parameters), and I hope I can keep it that way, and not need a seperate preprocessor, since it would break some features, like direct compiling in Visual Studio and other compilers, and in other languages too.
     
    Although Easy is not always less to code than C++, BASIC or Pascal, it should be still faster to code with, as you don't have to type characters like "{", "}", "=", "<", ">", ":" and ";", but you always use only "(" and ")". So it's less thinking while coding (or looking up help files and examples), and it should get quite intuitive after writing your first few programs.
     
    Let's compare C++, BlitzMax and Easy code:
     
    C++:

    #include "stdio.h" int main() { printf( "Hello World!\n" ); for( int i=1; i<=10; i++ ) { printf( "%d\n", i ); } return 0; }
     
    BlitzMax:

    SuperStrict Print "Hello World!" For Local i:Int = 1 To 10 Print i Next
     
    Easy:

    #include "easy.h" Begin Print( "Hello World!" LineFeed ) For( Int, i, 1, 10 ) PrintIntLine( i ) End Return( 0 ) End
     
    As you can see, Easy has the least amount of special characters used, and everything is kept simple using a few characters: "(", "," and ")". It's also more readable (round brackets are reader friendly also in mathematics, as they do the thinking for you, when combining multiplication, division, powerization and addition in formulas), especially for persons who don't know the language in question (C++ or BlitzMax).
     
    The line feed handling is still something I'm thinking about, it could end up as: PrintIntLine( i ), or PrintInt( i, LineFeed )
     
    The official Easy web page can be found here:
    http://www.siipi.com/easy
  3. Canardia
    Is to make games as easily as this:
    http://fuse.microsoft.com/kodu/
     
    Editor can get very close to that, by creating Thingoids and Models for it.
    You can make those kind of ad-hoc menus in Editor using Thingoids, and have Models have their own logic so you just place them in Editor, and they get alive.
  4. Canardia
    Josh talked about the new engine integrated Framework:
    http://leadwerks.com/werkspace/index.php?/blog/1/entry-57-merry-christmas/
     
    The engine integrated framework is the only way at the moment to have LUA and C++ code use the same framework instance.
    This brings some great benefits over the old way how framework works:
    1) You can have LUA scripts which access framework commands, and they work also in your C++ program. Earlier the LUA scripts could not access the framework commands of your C++ code, and you couldn't create a 2nd framework instance from LUA either, since it would have caused a big mess.
    2) You can port framework to other languages much easier now, as you only need to port the C headers.
    3) When framework is modified, you barely need to do anything to update your "other than BlitzMax or C/C++ code". In most cases the modifications and updates are only internal, so the interface doesn't change. In this case you don't need to do anything. In the case that the interface changes, you only need to update the changed interface commands.
     
    Although the C/C++ framework source code will still remain, it is not needed at the moment (it will be needed later on when LE is ported to C++ (officially (for console ports), or inofficially (by source owners)). I think that now it will mostly serve as documentation how framework works internally.
     
    At the same time framework will get a more object oriented environment also, since LEO needs to access it too.
    Optimally, game developers would use LEO and Lua, as their syntax is almost identical (and can be made even more identical when Josh makes every Lua command OOP style). I say optimally, because with the combination of LEO and Lua you get the fastest possible code for a game with the biggest 3rd party library support (from LEO), and also the easiest, most interchangable and fastest to code code (from Lua).
     
    GameLib 0.0.16.0 will also use the engine integrated framework, so it will bring another boost to C/C++(LEO) game development (and to BlitzMax and to other languages if the community would be more supportive in porting GameLib ). Although if the C++ game development accelerates even more in future, soon anyone not using C++ would be a fool and waste his time, and that's not a bad alternative either. I personally think that the world would be much more advanced if people would stop making new languages all the time (there are over 350), and focus on C++ only.
  5. Canardia
    I added multithreading capability to the Siipi speedtest tool, and it showed surprising results: Looping got almost number of cores times faster, but allocating memory got almost number of cores times slower!Here's the test with the first part using 4 cores, and 2nd part using 1 core (as before):Speedtest 1.1 © 2009 SiipiCounting 10 billion floating points using 4 cores...thread 1 begin=25000.000000thread 2 begin=50000.000000Main loop begin=0.000000thread 3 begin=75000.000000thread 3 loop ended at 100000.000003.thread 2 loop ended at 75000.000003.thread 1 loop ended at 50000.000007.Main loop Done. i=2500000050, n=25000.000009, time=4.390000s.Creating and deleting 100 million class objects using 1 cores...Main loop Done. i=100000000, time=13.313000s.Total time=17.703000s.Now the same test with both parts using 4 cores:Speedtest 1.1 © 2009 SiipiCounting 10 billion floating points using 4 cores...thread 1 begin=25000.000000thread 2 begin=50000.000000Main loop begin=0.000000thread 3 begin=75000.000000thread 3 loop ended at 100000.000003.thread 1 loop ended at 50000.000007.thread 2 loop ended at 75000.000003.Main loop Done. i=2500000050, n=25000.000009, time=6.312000s.Creating and deleting 100 million class objects using 4 cores...thread 1 begin=25000000thread 2 begin=50000000thread 3 begin=75000000Main loop Done. i=25000000, time=66.188000s.Total time=72.500000s.As reference the original test, using no multithreading:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=15.078000s.Creating and deleting 100 million class objects...Done. i=100000000, time=12.890000s.Total time=27.968000s.I found also an interesting article where the author claims that multithreading does not speed things up (which is not always true), but rather stops the system from getting blocked (which is always true, as I've experience with the Lucid engine also):http://www.anomaly.org/wade/blog/2005/08/unintuitive_multithreading_spe.html
     
    Source
  6. Canardia
    I've recently started to use Layers for web apps, and Outlines for Notes apps. And they give a better development speed.However, Layers have also some problems:1) They don't scale with the web browser window like tables do2) When replying with history to an Notes e-mail, layers get all screwed up, so you can only use tables in Notes, but for web apps Layers are still quite goodOutlines for Notes apps totally rock though:1) They expand vertically when you expand their entries (like with subviews). Navigators can't do that2) You can add a nice company logo and lots of other stuff, which you can't do with basic Notes Views3) You can also add lots of other links than just Views to an Outline4) You can sort the Outline entries how you want, and don't need to add some "1. ", "2. " numbering to the view names, and you can also decide which Views you want to show at allSo far I've been under the impression that only Agents, Views, Forms and Documents should be used in Notes for Notes and Web apps, but these 2 elements seem to qualify for further use too (Outlines need of course also Framesets and Pages, but that's OK as they serve a good purpose). Some Notes performance extremists like Chris Toohey go even as far as saying that you need only Documents and Agents (for web apps only), but I see still some benefits with Views and Forms.I guess I'm just a man in the middle, between the Notes 8.5.1 enthusiasts, and the Notes-Fastest enthusiasts. Actually I'm more of a Notes-Stablest enthusiast, so on Windows servers I use Domino 7.0.4 only. On Linux, Domino 8.0.1 seems damn stable (never crashed yet class). On AIX, well Domino is more stable than the OS, so better install Debian on your IBM PowerPC servers.
     
    Source
  7. Canardia
    MinGW 3.4.5 C++ vs. Visual Studio 2008 C++ vs. GNU C++ make quite different quality in speed of executable code.Currently MinGW is 1.902 times slower than VC++, and VC++ is 1.315 times slower than GNU:MinGW default:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=41.594000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=16.937000s.Total time=58.531000s.VC default:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=41.609000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=15.469000s.Total time=57.078000s.VC -O3:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=41.593000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=15.453000s.Total time=57.046000s.MinGW -O3 -mtune=i686:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=37.437000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=15.766000s.Total time=53.203000s.VC IDE default:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=15.078000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=12.953000s.Total time=28.031000s.VC IDE -O3:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=15.078000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=12.890000s.Total time=27.968000s.openSUSE 11.2 GNU -O3 -mtune=i686:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410065408, n=100000.000009, time=16.060000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=5.310000s.Total time=21.370000s.Debian 5.0 GNU -O3 -mtune=i686:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410065408, n=100000.000009, time=16.650000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=4.620000s.Total time=21.270000s.
     
    Source
  8. Canardia
    I was just adding wheels to my airplane, and noticed how much time the realtime LUA programming saves me when I was adjusting the positions of the wheels to their exact position. Having the airplane model positioned and zoomed on my screen, I added some code to load and position the wheels, and after each character change in code (like finding the value Vec3(0,0.125,2.01) for the front wheel), I pressed Ctrl-S and saw the result immediately on the screen.
     
    Using C++ or any other compiled language this would have taken me a lot more time, with all compiling and restarting between each adjustment.
     
    Even if I still need some C++ code for time critical things and 3rd party libraries, all the execute-once-at-startup code done with LUA reduces the amount of C++ code and programming time incredibly much.
     
    An industrial programmer who's getting paid for his work per hour, would probably save the company 50% of unnecessary expenses without that the programmer gets less salary, and the programmer would also get more motivated and have more time to focus on quality, since he is now so productive with Entity Oriented Realtime 3D Programming.
  9. Canardia
    For almost a year Max3D lead the charts, but the single fact that LE has now realtime scripting, brought it 1 more point, totalling in 14 points and beating all other engines on the market:
    http://siipi.com/public/mika.nsf/0/2AAC3EECC888AC57C22575F7004ADC16
     
    Some people might need a low-end engine, but this very same chart provides that information also:
    You just look which engine has low-end support and is ranked highest.
    The same way you can find the best engine for your needs, if you have similar special needs as low-end support.
     
    Anyway, congratulations Josh, for getting number 1 with your engine
    And I think this was just the beginning of a new era, called Social Game Development.
    I can foresee that LE gets even more points in future, broadening up the gap to other engines.
  10. Canardia
    You served us well for many years, beating all competition, and it shows in your old age and scars of development. To bring back the freshness and speed of the old days, with a modern and powerfully multitalented browser, we say:Welcome SeaMonkey 2.0!Why?Here are some reasons why SeaMonkey is better than Firefox:1) Uses only 56MB on google.com, while Firefox uses 82MB2) Faster than Firefox 3.5.5. Firefox 2.0 was always faster, and SeaMonkey is based on that.3) Firefox 3 introduced frequent crashing, especially when you close and reopen it quickly, but also randomly when you open it.4) Firefox 3 hangs up quite often, taking all CPU load, even on simple web pages with only one instance running.5) SeaMonkey has also e-mail, graphical HTML editor, and IRC built-in. Still it uses less memory than Firefox.6) Firefox takes sometimes 10-20 seconds to open certain Ajax based chats on forums.7) SeaMonkey runs on Windows, Mac, Linux (just like Firefox).8) It has less security holes, and is less attacked (since most attackers focus on IE and Firefox).9) Firefox takes over 30 seconds on first time to open when I start my PC. SeaMonkey takes 7 seconds.10) It has collapsible toolbars, like Netscape had. It has collapsible and resizable sidebars, just like Notes 8 has!11) It has profile switching! This is very useful for web developers, as they don't need to use different browsers for each user, or close all browser windows to switch a user.12) It has theme switching.13) It has a site navigation bar.14) It scores 93/100 on Acid3 test (same as Firefox 3.5.5, but IE8 gets only 20/100, and IE9 gets 32/100): http://acid3.acidtests.org15) It has no home button (yes, that's a benefit, read on...). I was at first confused and thought, that cannot be, it's a useful button! But then I thought about it more, what is it actually? It's just a clickable item in the browser. So I figured, I can just as well put my new home button as first link in my bookmarks sidebar (F9, not Ctrl-B like in Firefox). Then I have all clickable sites in the same place, and don't need to move far distances with the mouse to the home button. Play it in your mind, how you navigate to the links and to a home button near the navigation buttons. It suddenly feels very unpleasant to have to use links in different locations. It feels like I have to switch to a different thinking routine, and that's stressing.16) It has probably a lot more benefits over Firefox, but I just started using it an hour ago :)17) Pressing Ctrl-U gives you a adhoc-realtime source display of a web page. You can update the source by refreshing the window. You can't do that with any other browser.It's not so far fetched for (ex-)Firefox lovers, as Mozilla features them side by side, although you might notice that they say that the all-in-one Mozilla suite is no more, so what to choose? (the choices are alphabetically sorted, to avoid any bias):http://www.mozilla.org/projects/browsers.html
     
    Source
  11. Canardia
    I've been experiencing a distinquished behaviour of the community for some time.
    It's like when someone advances in his work, suddenly everyone else advances too.
     
    Yeah, I know in history also similar or identical inventions have been made around the world at the same time without that the inventors were connected or cooperating anyhow with eachother.
    There has been made also tests with apes, who learned that a banana was served in a certain spot, and new apes would go to that spot without never having being in contact with the previous apes who learned it.
     
    I don't call it supernatural, but there must be somekind of impulse and sharing of knowledge, over the remaining 7 dimensions we know of today. Sure, the tools, libraries, code snippets, demos and the entity packs which LE 2.3 now supports will play a big role too in this evolution. Soon everyone will get a lot of fully working and exchangable models with their own logic shared via this site.
     
    There has been a lot of people asking about real games made with LE.
    I think when the first one comes, suddenly a lot will come at the same time or shortly after.
    Especially with this new social development site.
     
    Of course there has been a few dozen playable games already published with LE, but no real games, like Crysis, which go fully commercial and AAA with every little tweak and trick and most polished arts possible.
×
×
  • Create New...