Jump to content

Canardia

Developers
  • Posts

    4,127
  • Joined

  • Last visited

Blog Entries posted by Canardia

  1. Canardia
    LEO 2.5 has been sent to Josh, there was a few commands missing, and a few bugs were fixed.
     
    GameLib 0.1.2.0 should be ready soon, I'm still testing the new additions to the Application class. It can get quite deep to make a simple spinning cube template, if you want to make it perfect.
     
    For example the window size needs to be read from a config file rather than from LEBuilder, so that it is not hardcoded into the game code. I ended up with the decision to make all config, gamesave, etc... files as sqlite3 databases. It makes things more standardized, as I found out that Apache PHP5 has also built-in sqlite3 support. Since GameLib's Window class supports also a seperate viewport area which can have a different resolution than the windows/fullscreen mode, that should be put into the config.db also.
     
    The idea behind the viewport area is that people want to play games in fullscreen mode, but sometimes their GPU is too slow to run 1920x1080 or even 1680x1050 fullscreen modes, so they can still run in fullscreen mode with a lower resolution viewport. It then also allows some GUI elements to be in full resolution.
     
    Next comes a GameLib Spinning Cube template for LEBuilder, and after that a simple FPS template also. And even after that a simple RTS template.
     
    I'm trying to keep GameLib as simple as possible to use, but it can be difficult at times, because it needs to stay universal, and not hardcoded for a specific game/application style. LEBuilder will help me a lot to keep things easy to understand for new users, as they only need to know how to achieve things, and not how it internally works. In the same way as I find STL easy to use, the way how it internally works is way too deep for anyone to understand. I just need concrete, compilable examples, and documentation, and it's easy to use.
     
    And right now we got a new version of LEBuilder tested and done with ZioRed. It supports auto-quit after building a project (you have to set the flag to True in the config xml), and it remembers the last project root directory. ZioRed sent the exe and source to Josh too, so this will be included in the official SDK also.
  2. Canardia
    Today I was explaining what the problem with all programming languages today is, that they have all failed, because they are not intented to make results (except Prolog maybe), but rather to aid the programmer to tell the computer what to do. This is a fundamental mistake, since computers should serve humans, including programmers. So the base for a better programming language is to focus on what the programmer wants as result, and let the computer optimize and decide what method is best to implement it.
    This brought me to the next step, that a programming language must indeed only be a medium to listen what the programmer wants, and the programmer doesn't need to know how to do it, as long the computer works within the limits given by the programmer. My initial idea was to have a "English Programming Language", but then I discussed this idea with a friend who was a fan of graphical programming using flowcharts.
    It was obvious that a spoken text based and graphical based approach are both good at some things, but neither is better than the other in all situations. I realized that both are actually parts of some bigger picture, and I realized also that spoken english (like all spoken languages) is only a failure of communication skills, since using a symbol language all people would understand eachother, including the computers. Then I started to draw the bigger picture and came up with this:

     
    Source
  3. Canardia
    Finally I got the newest Quickr version to work together with the newest Domino version.Before the last version update, I was running Quickr 8.2.0.0 and Domino 8.5.1 and it crashed almost daily.Domino left a 0 byte NSD file behind each time it crashed.Now it hasn't crashed once yet.All SNAPPS apps are also installed and working fine.
     
    Source
  4. 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.
  5. 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.
  6. Canardia
    We can use Apache as frontend HTTP server running on port 80, and Domino on port 81, so that users can access both Apache and Domino pages via port 80 only.This is done via the Apache Rewrite Engine, but until now it caused one nasty problem: When doing a submit on a Domino page, then Domino would add the port 81 to the URL, and the user could not access that page, if only port 80 was opened to the internet.I found a solution how to overcome this Domino's problem, by adding Apache Reverse Proxy Engine to the httpd.conf.It's very simple to setup, just add these lines at the end of your Apache's httpd.conf file, and replace the IP: 1.2.3.4 number with your internet server's IP number or domain name.In this Rewrite setup, I made it so that all .php ending URLs are handled by Apache, and all other URLs by Domino. This gives us the possibility to add php5 and sqlite3 code to any Domino site.
    ProxyRequests OffOrder deny,allowAllow from allProxyPass / http://1.2.3.4ProxyPassReverse / http://1.2.3.4ServerName 1.2.3.4ServerAlias 1.2.3.4DocumentRoot "D:/Apache/htdocs"DirectoryIndex index.html index.php index.sh default.jspRewriteEngine OnRewriteCond %{REQUEST_URI} "!.php"RewriteRule ^/(.*) http://1.2.3.4:81/$1 [P]The above ProxyPassReverse setup will now return all submitted pages to http://1.2.3.4/:81/ (yes, that's intentionally a malformed URL), and this allows us now to redirect the malformed URL via a Domino Web Configuration document to the wanted port 80 back.For this we create a Web Configuration document like this:BasicsWhat do you want to setup:URL-->URLMappingIncoming URL path:/:81/*Replacement URL string:/*That's it, now you have a fully working Domino running under Apache!PS.If you haven't setup Apache before, all you need to do is to install it, and uncomment the following lines from httpd.conf, to enable the Rewrite and Proxy engine:Uncomment line 110, 115, 118:LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule rewrite_module modules/mod_rewrite.so
     
    Source
  7. Canardia
    Add CREATENOW parameter to LEO's Framework::Framework() and Engine::Engine().
    Expand hybrid fpscontroller2.lua example
    Also try to split it into universally reusable thingoids
    [*]Make some cool dungeon with 3DWS
    [*]Write a short tutorial how to create a distributable game (including built-in C++ RunTime)

    Include a game launcher and updater in the tutorial
    [*]Write also a mini game while doing the tutorial
    [*]Try to get a ragdoll physics character controller working
    [*]It could be used also for n-pedal monsters

    Realistic movement is not important in first phase
    [*]Make physics based 3D emitters

    They could be used for physics based 3D decals also



  8. 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.
  9. Canardia
    I was looking at some old programming languages like COBOL (a business oriented language, and the second oldest language: founded in 1959), Ada, Fortran, Prolog, and few others. My interest was only to see how programming worked in the old days, and if they had any good ideas which I could reuse for the upcoming symbolic visual language.
    When I stumbled upon Fortran, I remembered that some people had said that it's faster than C++, and I remember the funny fact that Intel has the fastest C++ compiler, but still they sell it side by side with their Fortran compiler. That kinda made me curious to see, if the reason why Intel still supports Fortran, is indeed because it's faster than C++, and I was positively surprised when I made some speed tests and in each test MinGW G95 (now also MinGW Fortran, aka gfortran) beat MinGW C++ in performance.
    So far I've been using MinGW C++ because it makes faster code than Visual Studio 2008 and 2010 C++ (and compiles also much faster, like the same program takes 2 seconds to compile with MinGW C++ and 30 seconds with VS 2010), and I haven't got a business case to invest for Intel C++ which might be even faster than MinGW C++.
    And the loop to IBM closes as I found that Fortran was actually invented by John Backus of IBM in San Jose, California in 1950: http://en.wikipedia.org/wiki/Fortran
    My study on Fortran involved learning the language in a few days, and I came up with this chart:
     
    Source
  10. Canardia

    Tools
    I'm working on a editor which translates english into C++ for Ultra Engine in realtime.
    The idea is to make using Ultra Engine really easy, and it should suit beginners as well as advanced users.
    Over time I plan to make it an universal human language to computer language translator which can be configured to use any game engine or other engine.

    I'm also wondering if a commanding sentence is more easy than an spectating sentence, but perhaps both can be used to make it suit all cases.
    Commanding sentence would look like: "move camera back 5 meters"
    Spectating sentence would look like: "camera moves back 5 meters"

    I will also add a button so you can compile and run your code directly; that will hopefully make game development a bliss and ultra fun, as VS2022 compiles damn fast.

    While UltraEnglish is defining this demonstration, I think I will call it in future Cute (Coders universal translation editor), and as you can see from this example, it looks quite cute when you have to give things names to keep the poem natural.

  11. Canardia
    Since the end of life of Notes/Domino 7 is coming in 2011-04-30 according to Ed Brill: End of Life for ND7, it's a good time to review the benefits of the two best Web Database platforms available on the market today: LAMP (=Linux Apache MySQL PHP) and Domino.
    1) LAMP database design can be edited with any text editor remotely, even with vi via secure shell (SSH). Domino Designer 7 and Notes 7 work fine, but not Domino Designer 8.5 or Notes 8. Domino Designer 8.5 is written in Java and is thus ridiculously bloated, slow, buggy and exposes lots of security holes.
    Notes 8 crashes when opening documents which contain HTML code, while the same document opens fine in Notes 7 and Notes 8.5, although some of them crash also Notes 7, but Notes 8.5 doesn't crash on any of them. Android got rid of Java in their OS, and users are praising the smaller memory footprint of 30MB and the incredible raise in speed due to native C++ code. OpenOffice uses Java also, and is a bit slow, but by miles not as slow as IBM's Java engine, which you can experience with Domino Designer 8.5, Notes 8.5 and Symphony.
    Although many things can be done with a graphical design in Domino Designer, the graphical features need to be replaced with LotusScript code when the application needs more features and customization. If you've ever worked with a simple application ready web server like Quickr, Sharepoint or Ruby On Rails (which are all horribly slow and inflexible compared to LAMP or Domino), as a developer you will love systems which are exactly the opposite and have thus full programmability and speed, and easy customization support, even if they don't have any ready apps.
    Hmm, actually this is a good question why does Domino not have any ready apps, or does it, if you count openntf.org? It's just not marketed as such by IBM. I think IBM should understand what collaboration really means, it means that the community does eventually official things, and not only IBM. A half point goes to LAMP.
    2) LAMP combines HTML and server side code in the same php document. This makes coding very easy and convenient, while in Domino Designer you need to juggle with a WebQueryOpen and WebQuerySave agent, which usually needs then more code and visual design elements to handle all different situations - you have to place additional fields in the Form and address them in the LotusScript code.
    This point is a draw though, since in LAMP you need to code everything, while in Domino Designer you can avoid some coding, and despite that it usually needs some more effort later on, it also saves time.
    3) The Domino 8.5 server has had known and fatal bugs for years, and although IBM knows about them, they haven't been fixed. One of those fatal bugs is for example that LotusScript WebQueryOpen agents keep running forever, until the memory is full, when the user closes the browser. The only workaround is to make a HTTP restart every night. In Domino 7 this problem does not exist.
    Another fatal bug is that chronos.exe crashes the server, however this can be fixed by deleting chronos.exe (speak: move it to a backup subdirectory, as you might need it for the next incremental installer), as it is some remain from Domino 1.0 where it also crashed all the time. And a third fatal bug is that compact increases the database size. This works fine in Domino 7. And a fourth fatal bug is that DAOS enabled databases with attachments cannot be copied to a Local file system when they are restored to a backup server first. This works also fine in Domino 7, since it has no DAOS.
    Domino 7 vs LAMP would have been a draw, but since businesses are forced to upgrade to Domino 8.5, this point goes to LAMP, as it has no such fatal bugs. In a similar situation, where Microsoft's Windows Vista was a plain failure for businesses (there was no business need or even benefit to upgrade) and Windows 7 (better than Vista, but it made itself required by ending the OEM Windows XP support), there is still support for Windows XP until year 2020, because that is the end of life of Windows 7 and the Windows XP downgrade is part of Windows 7, so it extends the end of support of Windows XP equal to the end of life of Windows 7. I find it a bit ironic that Microsoft has now better backwards compatibility, while this was the ace card of IBM over Microsoft for decades.
    4) LAMP is open source and free, while Domino 8.5 is closed source and commercial only. Android won iPhone, Sony/Ericsson and Nokia because it is open source and free. Likewise, the importance of a free version of Domino is to get a bigger market impact and get it more supported. This point goes to LAMP.
    5) LAMP works on 12 hardware platforms, while Domino works only on 5. An important version is the 64-bit Linux version on Intel and PowerPC, and Domino doesn't have them either: FAQ: 64-bit version of Domino This point goes to LAMP.
    6) Readers and Authors type fields and Groups and Roles are a major benefit of Domino. This point goes to Domino.
    7) Love for Lotus and the visual development environment keeps the developers motivated. This point goes to Domino.
    As it stands now, LAMP wins Domino 8.5 with 4.5:3.
    LAMP vs Domino 7 would have been only a 4.5:4 win.
     
    Source
  12. Canardia
    It just came like a lightning from the clear sky, and illuminated us all.
    I can't remember to have ever seen such a great success in concept, it's so unbelievably thought troughout.
    All the details you experience, all the things which just work like they should have always worked in other systems.
    Everything is real, the people, the talks, the lifes, the avatars, the celebrities, just everything. The Google+ system leads it to be that way.
    It's simply amazing, and very valuable.
     
    Source
×
×
  • Create New...