Josh Posted December 20, 2011 Share Posted December 20, 2011 He's right. Targeting Facebook is a big deal right now. I'm more curious as to how he intends this to work if developers are using C++. I can certainly see how this would be fairly doable with Lua. @Josh How are you intending the web plugin to work? Strictly by Lua? For C++ users, is each game going to have it's own plugin? Are you going to use a dll hook? Something else? Aria and I have discussed it into the ground, and there is no one best way to do this. All the browser providers except Google are strongly opposed to it. Google's native client is one option. It's the best approach, but it won't ever catch on with the other browsers. A custom player that downloads your game in a single .game file and executes Lua script in a sandboxed environment is safe and completely under my control. I would just disable file access, custom shaders, and DLL calls and it would be impossible to write a malicious script. (You can cause a BSOD with a bad shader.) It would use an ActiveX plugin like OSAKit does, to embed the 3D window in a browser. There's also a new version of Flash coming out that compiles C++ into action script. It would be slow as hell, but would run on most computers since almost everyone has Flash installed. All these approaches have benefits and drawbacks, and we'll probably end up supporting a combination of them. I don't expect a clear winner to emerge for several years, because the browser providers are ideologically opposed to this. My guess is one approach will become popular, and the other browsers will have to add support to stay competitive, probably Google Native Client. I don't know of any other way to do C++., but if you have ideas I'm all ears. Quote My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Scott Richmond Posted December 20, 2011 Share Posted December 20, 2011 Doesn't HTML5 support 3D buffers? Quote Programmer, Modeller Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64 Visual Studio 2008 | Photoshop CS3 | Maya 2009 Website: http://srichnet.info Link to comment Share on other sites More sharing options...
Brent Taylor Posted December 20, 2011 Share Posted December 20, 2011 Doesn't HTML5 support 3D buffers? Yes, sort of. Chrome, Safari and Firefox support WebGL just fine (at least under Windows Vista and up). On the other hand, Microsoft has announced they will not be supported WebGL in IE for the foreseeable future. To be honest, WebGL is extremely insecure right now. It's theoretically possible to break out of the sandbox via the video card. @Josh I haven't looked into embedding any sort of application in a browser in years and I know a lot more security and sandboxing is in place these days. So take what I'm about to say with a healthy bit of skepticism. It's possible, at runtime, for a C++ application to call into a DLL. In fact the Quake 2 engine was designed to do this for all game content. The engine was the executable and would call into a dll that had all the actual game content. Lua does this as well when using C libs written for it. Now, again I'm unsure exactly what security measures are in place these days in the browser for this kind of thing, but I see no reason why games couldn't be compiled as a DLL with a specific entry point that's called by the engine and linked at runtime. In fact this is exactly what your current C++ headers are doing for LE2. You'll just need to do it in reverse. Theoretically this would allow your users to link in any libs they need without modifying or requiring a custom plugin for each game in the browser. EDIT: On further consideration, this is an extremely bad idea. I can think of a number of rather serious attack vectors for this kind of thing that you really can't protect yourself from. I'd highly recommend disabling the use of external C libs from Lua while in the browser as well. Quote There are three types of people in this world. People who make things happen. People who watch things happen. People who ask, "What happened?" Let's make things happen. Link to comment Share on other sites More sharing options...
TheoLogic Posted December 20, 2011 Share Posted December 20, 2011 We use Visual Studio 2008 for Windows, Xcode for OSX and iOS, and Eclipse for Android. I agree with some comments here, VS2008 is not the way to go. For me, the main reason is performance: - Secure_SCL is on by default - No STL in C++11 form (move semantics for example) Both fixed or supported in VS2010. 2 options for the redistributable, static linking or including it in your package. Quote Follow me Link to comment Share on other sites More sharing options...
Roland Posted December 20, 2011 Share Posted December 20, 2011 This post by Josh make a bit confused. It must be a joke. VS2008: Give one good reason! Surely this strange way of holding on to an old compiler must have same very strong arguments, or else its just ... strange. No installer: A program without an installer will be a nightmare for you 'I dont know anything' customer. - He will need to know 'how to unzip' ..... "What! Unzip ....whats that ???" - He will need to know 'where to unzip' ..... "I cant find any files... where did they go...???" - He will need to know 'which executable to click on in the directory he probably will have a hard time find. ..... "What?? Whats is an executable`???" - And please don't even try to give instructions on how to make a shortcut to it all........ - Microsoft RunTime Redist ... "What the f**k is that .....?" How can this be a good thing for the end-user instead of doing as he is used to from every other program. Just click on the download and there you are, ready to go with a nice icon on your deskop. And you are telling me that installations don't work and is a big problem.... Nahhh.. must be joking ...right. Regarding Mac and Android it may be another thing, I don't know. But still Windows is a big thing You can't be serious about VS2008 and the rant against installers. But however its up to you of course, i will use VS2010 (or 2011) anyway as I have been for two years now. Anyway. What ever you descide I wish good luck, personnaly I will use my own tool anyway B) Cheers Roland Quote Roland Strålberg Website: https://rstralberg.com Link to comment Share on other sites More sharing options...
Clackdor Posted December 20, 2011 Share Posted December 20, 2011 In addition, I would not recommend GCC/MinGW on windows as the primary development environment. You're going to find the vast majority third party, proprietary, libraries are compatible strictly with Visual Studio. Ack! Are you serious? Microsoft really has entrenched itself deep if this is true. I switched to Code:Blocks for a few reasons, but I hope I don't run into this problem for awhile. So, how does Unity do 3D web play? Quote Link to comment Share on other sites More sharing options...
Brent Taylor Posted December 20, 2011 Share Posted December 20, 2011 Ack! Are you serious? Microsoft really has entrenched itself deep if this is true. I switched to Code:Blocks for a few reasons, but I hope I don't run into this problem for awhile. Well it's pretty simple. If you're providing only a library to link against, it's compiler specific due to differences in name mangling, argument passing order and a few dozen other little things that just aren't compatible between compilers, or versions of a compiler for that matter. Much like you can't use a MSVC2008 lib with MSVC2010, you can't use a GCC3 lib with a GCC4 compiler. Just the way it is. So, how does Unity do 3D web play? Unity is a pretty complex beast in general, but the gist of it is that Unity is a complete sandboxed environment. Everything is embedded .NET so they have complete control of the environment. It's precisely what Josh is looking into doing with Lua. Quote There are three types of people in this world. People who make things happen. People who watch things happen. People who ask, "What happened?" Let's make things happen. Link to comment Share on other sites More sharing options...
Mumbles Posted December 20, 2011 Share Posted December 20, 2011 In addition, I would not recommend GCC/MinGW on windows as the primary development environment. You're going to find the vast majority third party, proprietary, libraries are compatible strictly with Visual Studio. Ack! Are you serious? Microsoft really has entrenched itself deep if this is true. I switched to Code:Blocks for a few reasons, but I hope I don't run into this problem for awhile. Very much so, but it depends on which libraries you're linking to. Libraries like SDL for example come with Visual Studio libs, gcc libs (and sometimes more) and source code to build it yourself. I switched to code blocks to remove the need for VC 9.0 runtimes as well as rumours that it compiled faster. However to make the Platform SDK work with it was apparently possible, but too complicated for a simpleton like me. Therefore Microsoft rubbed their hands together, looking smug as I returned to VS 2008. I should upgrade to 2010 at some point but can never be bothered getting round to it (I only like to replace things when they really are dead). Yes the compile time was a quite a bit longer but since then I found that by reorganising my includes, the compile time for compiling 81 total source/header files, a combined size of 1150 KB (excluding LE2 engine files) is about 5 seconds where it was more like 60 (about 45 on code blocks). No precompiled header, and not using an SSD, just only including only what's needed (you know, the way you're supposed to do it), instead of before where every single file (header and source) included a file called "includes.h" which included every single header file. It's more convenient to do it that way but it's a lot slower on the compiling. I also don't ship the redist installer for the VC 9.0 runtimes, instead I include the 3 dll files needed and the manifest. I learned to do that from Mika in the opening days of werkspace as a means of making my project work on Linux using wine. It turned out to be very useful since it also allows me to test it on my brother's computer - he has Windows 2000 and does NOT have the VC 9.0 runtimes, but doesn't want to install them either (he calls it "registry spam") Quote LE Version: 2.50 (Eventually) Link to comment Share on other sites More sharing options...
Josh Posted December 20, 2011 Share Posted December 20, 2011 Think how many demos you have played with you downloaded from the forum or asset store on this site. Now think how many of those used an installer. Quote My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Rick Posted December 20, 2011 Share Posted December 20, 2011 Because generally they were all far from finished OR not meant to be anything to serious. I'm not going to spend the time to make an installer for a cheaply made Simon Says game that I'm giving away. Every game is free and for the most part there is just no point in spending the time to do an installer. If we were selling games they would all have proper installers. Quote Link to comment Share on other sites More sharing options...
Roland Posted December 20, 2011 Share Posted December 20, 2011 Think how many demos you have played with you downloaded from the forum or asset store on this site. Now think how many of those used an installer. But we are developers .... We know about RAR, ZIP and Folders. We have Microsofts runtimes on our system. I could make a test with my wife and give her the instructions. Download, unzip in a folder and run the executable... and remeber to install OpenAL.... and by the way. If things don't work your MS Runtime may be missing.... No... I think I wont EDIT: A bit later.... Haha.. I asked her about that. She stopped listening to me after the word RAR See what I mean Quote Roland Strålberg Website: https://rstralberg.com Link to comment Share on other sites More sharing options...
tournamentdan Posted December 20, 2011 Share Posted December 20, 2011 But we are developers .... We know about RAR, ZIP and Folders. We have Microsofts runtimes on our system. I could make a test with my wife and give her the instructions. Download, unzip in a folder and run the executable... and remeber to install OpenAL.... and by the way. If things don't work your MS Runtime may be missing.... No... I think I wont EDIT: A bit later.... Haha.. I asked her about that. She stopped listening to me after the word RAR See what I mean RAR is easy. That is the sound a lion makes. Or a drunk pirate Quote Link to comment Share on other sites More sharing options...
Scott Richmond Posted December 20, 2011 Share Posted December 20, 2011 Think how many demos you have played with you downloaded from the forum or asset store on this site. Now think how many of those used an installer. Seriously? You're making end-user design decisions like this based off of what developers are posting on developer forums? I see... Quote Programmer, Modeller Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64 Visual Studio 2008 | Photoshop CS3 | Maya 2009 Website: http://srichnet.info Link to comment Share on other sites More sharing options...
L B Posted December 21, 2011 Share Posted December 21, 2011 Here's my grain of salt for VS2010: C# and .NET 4 require it. Period. Quote Link to comment Share on other sites More sharing options...
Josh Posted December 21, 2011 Share Posted December 21, 2011 Seriously? You're making end-user design decisions like this based off of what developers are posting on developer forums? I see... My point is that the real behavior people carry out will be to not make installers with the VC2010 redistrib built in. You have no idea how many people email me asking why their Leadwerks project won't run on their secretary's / grandma's / son's computer. Quote My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
smashthewindow Posted December 21, 2011 Share Posted December 21, 2011 My point is that the real behavior people carry out will be to not make installers with the VC2010 redistrib built in. You have no idea how many people email me asking why their Leadwerks project won't run on their secretary's / grandma's / son's computer. Rename VS redistrib package, OpenAL, game's exe to 1.exe, 2.exe, 3.exe accordingly zip & distribute in readme we can tell them to click 1,2,3 in order. Quote Blog & Portfolio Current project: moon.chase.star Link to comment Share on other sites More sharing options...
Clackdor Posted December 21, 2011 Share Posted December 21, 2011 You have no idea how many people email me asking why their Leadwerks project won't run on their secretary's / grandma's / son's computer. Sounds fascinating. Do share some of the more hilariously sad emails. Quote Link to comment Share on other sites More sharing options...
Scott Richmond Posted December 21, 2011 Share Posted December 21, 2011 Josh, I understand your predicament but I feel like you're trying to work around a problem instead of solutioning it. For example, I noticed in a recent blog post you've gone to some effort to create a publishing pipeline. Maybe it would be worth investigating how much work it would be to take an open source installer (Assuming there is one?) and develop a publishing workflow that builds installer packages. The open source installer should provide options to silently pre-install other packages before the main install, and so you could add that as part of your publishing pipeline. Quote Programmer, Modeller Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64 Visual Studio 2008 | Photoshop CS3 | Maya 2009 Website: http://srichnet.info Link to comment Share on other sites More sharing options...
Rekindled Phoenix Posted December 21, 2011 Share Posted December 21, 2011 Visual Studio 2010 C# Express Notepad++ for Lua, along with the built-in editor Quote Link to comment Share on other sites More sharing options...
L B Posted December 21, 2011 Share Posted December 21, 2011 My point is that the real behavior people carry out will be to not make installers with the VC2010 redistrib built in. You have no idea how many people email me asking why their Leadwerks project won't run on their secretary's / grandma's / son's computer. Ok, yes, we get your point: Developers might not be able to add the redist to an installer Users might not be able to correctly install said redist Now here's the counter-argument: Don't settle for old technologies, you'll be switching in 6 months anyway. And that's probably before the official release date of L3D, so it really might be worth considering. Also, did I mention C# and .NET 4 require VS2010? This means language improvements that C# coders have started using regularly, like optional parameters, that Leadwerks wouldn't support. And if you're worried about the installers, make a distribution guide or whatnot. An example NSIS script. It really can't be hard to figure out once and then put in the distro. Quote Link to comment Share on other sites More sharing options...
Brent Taylor Posted December 21, 2011 Share Posted December 21, 2011 Maybe it would be worth investigating how much work it would be to take an open source installer (Assuming there is one?) and develop a publishing workflow that builds installer packages. The open source installer should provide options to silently pre-install other packages before the main install, and so you could add that as part of your publishing pipeline. See, this is a reasonable solution. NSIS would work quite well for this. Quote There are three types of people in this world. People who make things happen. People who watch things happen. People who ask, "What happened?" Let's make things happen. Link to comment Share on other sites More sharing options...
Josh Posted December 21, 2011 Share Posted December 21, 2011 Eliminating VS2008 support is not an option. If I have to choose between VS2008 and 2010, 2008 will win as long as 2010 requires additional packages. If you guys want support for both VS2008 and 2010, that can be done. It's just another project we'll have to maintain, but I won't be the one doing it, so it's not that big of a deal. Quote My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Brent Taylor Posted December 21, 2011 Share Posted December 21, 2011 Eliminating VS2008 support is not an option. If I have to choose between VS2008 and 2010, 2008 will win as long as 2010 requires additional packages. If you guys want support for both VS2008 and 2010, that can be done. It's just another project we'll have to maintain, but I won't be the one doing it, so it's not that big of a deal. Err, I assume you mean you have someone on your team that will maintain it and release a VS 2010 lib regularly? Remember, C++ libs are not compatible between compiler versions. A VS2008 lib will generally not work in VS2010, or the other way around. The same is true for GCC libs, they aren't compatible between compiler versions. So unless we have access to the source (we don't), someone on your end will have to take care of it. Quote There are three types of people in this world. People who make things happen. People who watch things happen. People who ask, "What happened?" Let's make things happen. Link to comment Share on other sites More sharing options...
Josh Posted December 21, 2011 Share Posted December 21, 2011 Yep. Quote My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
L B Posted December 21, 2011 Share Posted December 21, 2011 It's just another project we'll have to maintain, but I won't be the one doing it, so it's not that big of a deal. Dang. Should've seen this one coming. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.