Jump to content

Josh

Staff
  • Posts

    23,341
  • Joined

  • Last visited

Everything posted by Josh

  1. How's this for a slogan: Leadwerks: We prevent you from making a fool of yourself. No?
  2. The new iMac GPUs range from the equivalent of a GEForce 8600 to a bit better than a GEForce 9800, based on the number of stream processors (divided by 5 for the NVidia equivalent). I think that is very good. Mobile devices are probably not the highest priority, because the advantages of Leadwerks graphics don't exist on those platforms. Leadwerks on iPhone won't look any better than Shiva, Unity, etc., because it will be bound by the same hardware constraints. I also don't like competing on those platforms as much because all my advanced engineering doesn't matter much on those. Ideally I just want to hire a mobile device specialist and let them produce the OpenGL ES renderer for those platforms, and handle any other specific issues they have, while I focus on the core engine and tools. Since LE3 is written in C++ it can be made to run on anything, and eventually it will. I'm not too worried at this point about the exact order of implementations.
  3. Those models are invisible and don't collide. They won't even get iterated through in the renderer or physics.
  4. I mean this is the simplest code possible to create a Windows with the Win32 API. I found another example, and had to strip out tons of unnecessary code to get the result above. I thought it might be useful to anyone trying to create a basic window. I want to minimize the number of external libraries the engine relies on, so SDL is not preferable.
  5. I believe the problem is fixed. Please sync your SDK.
  6. The speed at which Newton builds the tree collision got a lot better in a recent version, so it's not as much of an issue anymore. I am hesitant to rely on serialized data anymore like we did, because we all know how many headaches that caused when the serialized format changed. Why would you be performing raycasts on an animated mesh anyways? Wouldn't it be better to use a few low-poly hit boxes attached to the joints? Or is this just for ease of use in the editor?
  7. I will consider it because a Linux port is pretty trivial compared to an Android or iPhone port. If another company only sold 100 licenses of a Linux version, it would be a disaster. If I only sold 100 licenses of the Linux version, it would be okay.
  8. I don't think there is any significant performance loss. I wouldn't worry about it one bit.
  9. I think there are easier ways to clean up those hidden models. You could set a global Lua variable and add some code in each script to self-delete the model after it's done loading, if the condition is true. Or if you don't feel comfortable with that, set a key in the script like "deleteme"="1", and then have a recursive function in your program that scans the scene hierarchy and deletes those models (after unparenting the model's children).
  10. Josh

    test

    test header ok there you go
  11. LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam ) { switch( message ) { case WM_DESTROY: PostQuitMessage( 0 ) ; return 0; break; } return DefWindowProc( hwnd, message, wparam, lparam ); } //Create the window WindowsWindow* window=new Window; window->width=width; window->height=height; window->wndclass.cbClsExtra = 0; window->wndclass.cbWndExtra = 0; window->wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); window->wndclass.hCursor = LoadCursor( NULL, IDC_ARROW ); window->wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION ); window->wndclass.lpfnWndProc = WndProc; window->wndclass.lpszClassName = TEXT("le3_window_class"); window->wndclass.lpszMenuName = 0; window->wndclass.style = CS_HREDRAW|CS_VREDRAW; RegisterClass( &window->wndclass ); window->hwnd = CreateWindowA(TEXT("le3_window_class"),TEXT("Leadwerks Engine"),WS_OVERLAPPEDWINDOW,200,200,width,height,NULL,NULL,NULL,NULL); ShowWindow(window->hwnd,SW_SHOW); UpdateWindow(window->hwnd);
  12. Anyone who has a problem, please fill in your specs in your profile information. There's a field for your CPU, GPU, and OS.
  13. Am I just not seeing the report in the tracker?
  14. Here's what I did: #pragma once #include "../../../le3.h" #include <windows.h> #undef CreateWindow namespace le3 { class WindowsWindow; class WindowsWindowDriver : public WindowDriver { LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam ); public: virtual WindowsWindow* CreateWindow(const int& width,const int& height); }; }
  15. UU3D is quite reliable for animation import and export.
  16. Right, but does that mean you can never have a class function called CreateWindow???
  17. #pragma once #include "../../../le3.h" #include <windows.h> namespace le3 { class WindowsWindow; class WindowsWindowDriver : public WindowDriver { LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam ); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow ); public: virtual WindowsWindow* CreateWindow(const int& width,const int& height); }; } The compiler is complaining:
  18. Josh

    MinGW

    File Name: MinGW File Submitter: Josh File Submitted: 30 Aug 2010 File Updated: 25 Jan 2012 File Category: Tools This is needed for compiling BlitzMax modules, in a single archive file. See this thread for more information: http://blitzmax.com/...php?topic=90964 Click here to download this file
  19. Josh

    Week 3

    You send UDP messages with the "reliable" flag disabled, and add a counter to each one. When the client receives the messages, they discard any that have a lower counter than the last received update. We actually saw 100% smooth and accurate physics over the network, something that I've never seen before. Compare that to any game using the Source engine, where the physics are constantly stuttering and bouncing around. Maybe we will implement a cubic spline prediction for physics bodies, but it needs to be silent, automatic, and in the background. I can't sell BlitzMax source code to professional studios, and BlitzMax won't run on the XBox or PS3. I've had a number of offers to buy source licenses if the code were C++. Linux is only free if your time is worth nothing.
  20. Josh

    Week 3

    The last two weeks were mostly me wrestling with C++. I had promising results with a meta language that translates to C++ and compiles, and also learned how to create makefiles as a result of that. I tried CodeLite and CodeBlocks, in addition to MS Visual Studio. I finally settled on CodeBlocks. Codeblocks can be configured pretty easily to use GCC, the MS C++ compiler that Visual Studio uses, as well as about a dozen others (very curious to see if LE3 compiled with the Intel compiler is faster!) I prefer GCC with no optimizations for development, because it builds about twice as fast as the MS C++ compiler. Although I find Scintilla to be slow and somewhat poorly written, it's nice to have a cross-platform code editor. I can also configure Codeblocks to stop on the first error (it's actually a GCC compiler setting) and it automatically opens the file and selects the line the first error occurs on (CodeLite does not). Because I realistically expect to make thousands of coding errors during the production of LE3, it makes sense to streamline this highly repetitive task any way possible, and for that reason Codeblocks wins. The meta language made a promising start, and I may offer it as a product in the future, but it will not be used to develop Leadwerks 3. I've started on the OpenGL4 renderer. First I create the base renderer class, and established what the commands would actually do. Next I am going to create a window in Windows, set the pixel format, and initialize an OpenGL context. I've done all of these tasks from scratch in BlitzMax, but it's been a long time since I dealt with any of that. One of the most confusing parts for me was pointers versus references. In C++, pointers act pretty much like an object in Blitz3D: When you declare the variable, it's null, you create a new object and assign the variable to it, you delete the object manually when you are done with it. Now if you declare a variable that is a class, it creates it instantly and it can never be Null; it just exists. When the variable goes out of scope, it gets deleted/destructed automatically. This was pretty confusing until I realized that these objects are just like when you declare a float or integer variable. You don't worry about cleaning it up, because it only exists within the scope of the function it's declared in. You can never set an integer to Null, because it just exists; it doesn't get deleted. In the same way, a Vec3 variable doesn't need to be cleaned up or deleted; it just exists within the scope it is declared in. Therefore, it makes perfect sense for math classes like Vec3, Vec4, Mat4, etc. to always be used as a regular variable, and for complex objects like entities, materials, etc., to always be declared as pointers. I had another look at the Android SDK, and decided an Android game development would come in the form of a static lib for use with Java (or pure C++ if you prefer and can set it up). I'm cautious about the iPhone, but because Leadwerks is a code-centric development approach, I don't think we will have much trouble staying in compliance with the Apple EULA. I sort of understand Apple's strictness. I love my HTC Evo, but there's so much on it that just doesn't work. The app store is full of horrible crappy games. The App Installer even crashes on startup. iPhone gets Doom 3 by id Software, and Android gets 10 versions of Doom classic compiled by some kid, and none of them work. If Apple can deliver a good and consistent user experience, then I don't really have any problem with the restrictions they give developers. You can now add your SteamID to your Werkspace profile and display your Steam status. It may help a few people to join up for some fun multiplayer challenges, but I am mostly interested in learning about the multiplayer features Valve has implemented in Steam. Join the Leadwerks Developer Steam Group and be sure to keep a couple games in your wishlist. Thanks to HurrBeDragns for reserving the URL for me! I want strong multiplayer support in LE3, and I like some of the things Valve has done. In LE3, all entities can be saved to a binary file format. We have learned how troublesome serialization can be, so we won't be using that, but this binary file format can be used for prefabs, and even for syncing entities over the network. I've already had success specifying an entity should be synced over a network. It's really nice to have everything just work automatically. I'm in favor of just letting the server handle all interaction, with no client-side prediction because: 1. client-side prediction is inaccurate and wrong, 2. It was originally designed for 56k modems, and 3. Onlive has proven that player response lag can be minimal even when streaming graphics in real-time. The design I used in the multiplayer tests I conducted a few month ago was certainly good, and the results were responsive enough as long as the players were on the same continent. The platforms I am most interested in are Windows and MacOS, now that the new iMacs are shipping with decent graphics cards. The GPUs the new iMacs come with range from an ATI Radeon 4670 up to a Radeon 5750. By following the ATI/NVidia rule and dividing the number of ATI stream processors by 5, we can deduce these cards to be the equivalent from about an NVidia GEForce 8600, to a bit better than a GEForce 9800 GTX. This is definitely within the range of Leadwerks hardware requirements, so I look forward to developing for MacOS in the near future. And it's a good excuse for me to get a 27" iMac. I did not like the direction Microsoft went with Windows 7, and the new OS has finally put me in a place where I am willing to try something new. That never would have been this case in the days of Windows XP. Just so you know I am not turning into a total Apple fanboy, it is funny they make a big deal out of having a separate graphics processor...I had a 3DFX card in 1997, and they are only now catching onto the idea of dedicated GPUs! That's pretty much it for now. Stop on by the Asset Store and grab the Industrial Cargo Model Pack for only $9.95 before the price goes up tomorrow.
  21. Can you post your model file please so we can try it ourselves? Thanks.
  22. I believe you want that to be true because you want a Linux version to exist, but I don't know if it is an accurate statement. Do you have any examples of successful products you can point out?
  23. I have never heard of any successful commercial software for Linux. There might be something, but I have never heard of it. Last time I asked about Linux, the next thing the users asked for was for it to be free. Look at the comments here. Not only do Linux users want their games to be free, they want the source code, too!: http://www.linux.com/archive/articles/59180#commentthis How many Linux users would actually pay for software? I have no idea. It would be nice if there were some examples that could be pointed out as evidence.
  24. The Rocks and Stones Model Pack by Pure3D is now available here: http://leadwerks.com/werkspace/index.php?/page/products/_/assets/rocks-and-stones-pack-r1 You can also still get the Industrial Cargo Model Pack for the low introductory price of just $9.95 until Monday, September 6, before the price goes up: http://leadwerks.com/werkspace/index.php?/page/products/_/assets/industrial-cargo-model-pack-r8
×
×
  • Create New...