Jump to content
  • Advertisement

Billr17

Member
  • Content Count

    311
  • Joined

  • Last visited

Everything posted by Billr17

  1. Quote:Original post by Matt328 Normally I'd suggest C#/Winforms, but if you're more comfortable with C++, maybe you ought to give Qt a look. Another option with .NET is C++/Winforms. You could potentially write the winform application with C++ CLI. This would make interop between the .NET application and your OpenGL rendering engine fairly easy. Although, I do believe the winforms designer does not work with C++ (At least you couldn't in previous versions of Visual Studio). I personally recommend Qt if your not going the .NET route.
  2. Billr17

    DirectX vs XNA

    XNA for Windows is built on top of DirectX 9. Basically it is a managed wrapper on top of the native DirectX libraries. In a sense, you are already working with DirectX and learning the basic concepts of how it works. XNA takes care of alot of the tedious grunt work you generally need to manage yourself when creating a DirectX application from scratch (Such as window creation, loosing the device context, etc). If your confortable with XNA already, you will probably be able to pump out a game much more quickly. It really comes down to what you want to learn about. XNA is currently based on DirectX 9. Therefore, you will not be able to take advantage of the new features that have been included with DirectX 10 & 11. So if you want to learn about geometry shaders, or some of the other new features, it may be worth diving into DirectX or OpenGL. Personally, I'd recommend sticking to the manage route and check out the SlimDX library if you interested in next gen API's. So here's a question for you. What do you intend to do with XNA, DirectX, etc? What kind of games are you interested in creating? There honestly is no right answer to your question. If your comfortable with XNA, I'd suggest sticking with it and at least finish the development of a game before moving onto something else. Finished projects look better then unfinished projects :)
  3. Billr17

    [web] Buying Flash

    Quote:Original post by Richard Kain Quote:Original post by Gamer Gamester 1) The mxmlc command-line compiler is all you really need to make Flash games. That is correct. You can go to the Adobe website, and download the Flex 3 SDK right from there. It is part of their open-source initiative, and it is completely legitimate. And the tools it comes with are all you need to create Flash files. I would also recommend checking out Flash Develop. It is an open source flash IDE for working with the FLEX SDK. It will make programming in Flash much nicer :-) -Bill
  4. Billr17

    Maya File Associations

    Quote:Original post by zer0wolf Ctrl + Right Click -> Open With -> Choose Program -> Select the correct version of Maya and check the always open this file type with this application box. I had tried doing this multiple times before making my post. I even manually browsed to the Maya 2009 executable via the Open With dialog. Unfortunately, every time I double click the mb file, it still opens in Maya 2008. It's appearing like the only way to correct the problem is by manually editing the registry settings.
  5. Billr17

    Maya File Associations

    We currently have multiple versions of Maya installed(8, 2008, 2009) because of various projects that require a specific version. A third party piece of software uses the file extension associated with windows to determine which version of Maya it should use for exporting assets. Because Maya 2008 was installed after Maya 2009, Windows now attempts to open all Maya mb files with Maya 2008. Thus the third party software is now incorrectly attempting to export all mb files with Maya 2008 instead of Maya 2009. I attempted to change the program associated with the mb extension, however, that did not seem to work. Does anyone know of an easy why to switch which version of Maya is associated with its file types? Perhaps there is an option to easily do this in Maya? I was hoping to avoid reinstalling Maya on multiple machines to get things working again. -Bill
  6. Quote:Original post by 23yrold3yrold Playing with it now; Application.Idle works as intended but my whole application is flickering nastily, even when I'm not clearing to the background colour. I think the parent thinks it's supposed to refresh itself over the child window ... Are you invalidating the form each time the idle event is raised? Invalidating the form would cause the flickering you are seeing. If so, only invalidate the child controls you are drawing on.
  7. Quote:Original post by 23yrold3yrold Fiddler: I don't think it's something that Application.DoEvents will fix; One thing to keep in mind is that the Application.DoEvents method allocates quite a bit of garbage that needs collected. Tom Miller had an interesting post quite a while ago on why you would not want to use this method in a render loop. Its probably still worth taking a look at: http://blogs.msdn.com/tmiller/archive/2003/11/07/57524.aspx The solution I posted is what Microsoft generally recommends. Tom Miller had posted this as a solution for getting Managed DirectX working within Windows Forms back when he was still working on MDX. Also Microsoft used this same solution in thier official XNA examples for showing how to use XNA with Windows Forms. From what I see, it appears that your control is properly redrawing itself. However, the DirectX surface is not being redrawn onto the control. Have you tried hooking the Invalidated event for the control your drawing on? That way you can force it to draw when the control becomes invalidated. Also, have you tried to set a break point in you paint event handlers to see if the code is ever hit when the control becomes invalidated?
  8. There are several ways of accomplishing what you want to do. If your control is going to display continous animation, the most common way of resolving the problem is via the Application.Idle event. This event is triggered when the application thread has completed processing windows messages and is about to become idle. Because of this, the event is continously raised and makes a good candidate for forcing the updating of rendering code. // Were yourControl is the control or form that you are drawing on. Application.Idle += EventHandler( yourControl.OnApplicationIdle ); void OnApplicationIdle (object sender, EventArgs e) { // Forces the control to repaint itself. This will cause the OnPaint method to be called. // Another option is to directly inject the DirectX rendering code here // (Although the control and its child controls would not be redrawn). Invalidate(); } On a side note, Managed DirectX is now a deprecated project. Microsoft is no longer maintaining it. You should consider migrating to XNA or SlimDX.
  9. Billr17

    image loading speed up!

    I'm curious and no one has asked... What do these large textures look like? Do they really need to be this large? For instance, could you achieve the same effect with a small subset of repeatable tiles? If the image data does not need to be 'baked' into an large texture, you would be better to procedurely render the out the tiles during runtime. This would significantly reduce the amount of texture memorya nd bandwidth your application needs. However, if the data in each of your jpeg's is unique, you have no choice but to do what your already doing. I'm guessing this is the case, but thought I would make the suggestion just in case. In regards to the DXT compression people are suggesting, just keep in mind that the load time for DXT compressed textures is typically greater then a compressed format such as jpeg or png. The reason is that the image is stored in a compressed format that the video card can quickly consume without needing to do additional decompression. Therefore, DXT compressed textures typically use more diskspace then a png or jpeg would. The problem is that this increases the amount of time needed to load data from the hard disk to system memory. The disk drive will be your greatest bottleneck when loading textures into memory.
  10. Quote:Original post by codeBeast OK. But it's still an swf. They cant get into it can they? unless they decompile it ie: they have to be hackers. I'm just saying that a normal student is not going to know how to do this. Not necessarily. Decompiling the swf would be one way to figure out what is going on. Another way would be to setup a packet sniffer on the local machine to monitor the outgoing data. If the data is simple enough to construct (such as a score), the user monitoring the data would be able to easily reconstruct and send fake data packets to the server. If this application is something for grading students, you will need to look into implementing proper security features (such as encrypting your data for instance). I would not assume that a student would not figure out what you are doing. There are some pretty tech savy kids out there.
  11. Billr17

    MMO: 2D or 3D

    Whether or not your game is 2D or 3D is irrelevant. If your game is fun and offers something that others do not, people will play it. Although geared towards children, both Club Penguin and Pixie Hollow are examples of successful 2D mmo’s. The more important question is how will your server be implemented. The server and it’s backend will be the most important part of your game. Most people tend to under estimate the complexity of building such a piece of software. I would recommend checking out Smart Fox Server to see what is involved with building such a server. It has a free evaluation license that allows up to 20 connections. To be quite honest, the amount of money Smart Fox costs is nothing compared to the amount of time you would be spending to engineer your own server with equivalent functionality.
  12. In Visual Studio you can rename any project by right clicking on the project's name and then selecting the 'Rename' menu item. For VB .NET and C# applications you can rename the executable by doing the following: 1.) Right click on the projects name. 2.) Choose the 'Properties' menu item. 3.) Select the 'Application' tab if its not already selected. 4.) Change he entry named 'Assembly name:' to the name you desire. In .NET, the binary files (executables and dll's) are refered to as assemblies. The assembly name property is used by Visual Studio to name the resulting binary file after it is generated. If you rename a project and want the resulting binary to be the same name, you must manually update the assembly name with the steps I outlined.
  13. Quote:Original post by Sneftel _G. Perfect, thanks!
  14. Is there a way that I get a reference to the global table (in Lua). I would like to iterate over the table and print out its contents for debugging purposes. I suspect that the local keyword was forgotten somewhere and would like to verify which variables are being accidentally created globally. -Bill
  15. Quote:Original post by chazzz Billr17: So I have to ask everyone who I want to send my future applications to, to install that? I'm thinking a installer will probably be the solution for more advanced applications? But what about text-based console app games etc? You actually have two options. Right now your program is (probably) linked against the DLL versions of the CRT. That is the reason the runtime needs installed for your application can run. Alternatively, you can also statically link against the CRT. This will cause the CRT to be built into your application. Hence, the person running your program will no longer need to install the CRT. If you statically link against the CRT, it will make your exe much larger. Additionally, your application will not be able to benefit from patches to the CRT DLL's. Because of this, it is generally best to dynamically link against them. To statically link against the runtime, do the following. 1.) Right click on your C++ project. 2.) Select the 'Properties' menu item. 3.) Goto Configuration Properties -> C/C++ -> Code Generation 4.) Locate the 'Run Time Library' option. 5.) Set the option to /MT for your release build and /MTd for your debug build. To read more about these options and the CRT, see C Run-Time Libraries.
  16. The person running your application needs the Visual C++ Runtime installed in order to run your application. It works fine on your machine because Visual Studio 2008 automatically installed it for you.
  17. Quote:Original post by gekkop.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(ConsoleOutputHandler); Have you tried using the 'StandardOutput' property instead? I have had good results in the past using a method similar to the below: System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "ModelExporter.exe"; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = true; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = true; p.Start(); StreamReader myStreamReader = p.StandardOutput; // Reads a single line of the programs output. string myString = myStreamReader.ReadLine(); // This would print the string to the DOS Console for the sake of an example. // You could easily set a textbox control to this string instead... Console.WriteLine(myString); p.Close(); For more information see:Process.StandardOutput Property. -Bill
  18. Billr17

    what is a good "paint" program.

    Its simple, features a decent plug-in architecture, and is free :-) Paint .NET
  19. Billr17

    Hiding pointers

    Quote:Original post by Mehdi_H This is known that target users are not experienced in C++ programming , So I want to do some thing to hide pointers from them to not "new" or "Delete" objects & limit them to use the framework. Some random thoughts on your situation: Have you considered using a scripting engine to expose this functionality to the end user? Using a scripting language would allow you to hide a lot of the tedious and advanced functionality of the C/C++ languages. Additionally, the end user would not be required to compile the source code in order to see their results. It could be as simple as them using notepad to create a few files that are saved into some specified folder. The CPython and Lua scripting engines (for example) provide a way for you embed them in your software. Additionally they also provide a way to expose your objects, functions, etc to the end user. What is your target audience? How much experience with programming do they have? We would be able to make better suggestions if we knew.
  20. Billr17

    Starting with SlimDX.

    Quote:Original post by Bargaust will I encounter any issues trying to get this working with WPF? I think WPF uses DX for its own rendering, and I've heard of 'issues' getting the two working together, but I don't know to what extent. Prior to .NET 3.5 SP1, using WPF and DirectX together was a problem. In .NET 3.5 SP1, Microsoft exposed the ability to draw to a surface using the new D3DImage image source. Basically you can apply the surface as a brush to anything you want. :-) Dr. WPF posted a very good article outlining the usage of the D3DImage with DirectX. If you want to understand how the image source works, I would highly recommend giving it a read. Introduction to D3DImage Also check out this post on GameDev:WPF D3DImage with SlimDx. -Bill
  21. Quote:Original post by MJP You don't need to call RenderTarget2D.GetTexture to make the 360 resolve the contents of the eDRAM to a texture. opps, your right... Thanks for the correcton!
  22. Let me put it this way. Are you planning to target the XBox 360? How many off-screen surfaces do you need to generate with a render target? If you are just drawing a single surface, you might be able to get away with what you want. In the RenderTarget2D constructor simply specify RenderTargetUsage.PreserveContents for the RenerTargetUsage. But be warned that this operation is fairly expensive on the 360. If you are going to be drawing many off-screen surfaces, I would highly suggest doing something similar to what I previously outlined.
  23. One of the XNA Developers (Shawn Hargreaves) has an excellant blog that he often details stuff like this. If your targeting XBox 360 with this, make sure to read the blog post I list below. The way render targets work on the 360 is different then Windows. Render Target Changes in GSE 2.0 What you will want to do is draw each of your render targets first. After each render target is filled with the data you want, you will want to call GetTexture() to save off the data as an Texture2D. This is the only safe way to guarentee the data will remain once you start to fill you next render target (on the 360). Technically you can do this in XNA 2.0 and above. However, it is a very expensive operation to perform. Finally you can proceed to render everything to the back buffer. To summarize in sudo code, it may look like: widgets = QueryForOffScreenWidgets() foreach widget in widgets tex2d = DrawWidget(widget) RememberTex2DReferenceSomewhere(tex2d) DrawFrame()
  24. Quote:Original post by benryves is there better choice of element there? Depends on what you want to have in your cells. I'm assuming that your example DataTemplate is simplified for example purposes? If not, I would suggest simplifying your XAML by removing the Grid (if possible). You should be able to accomplish the same result without needing to nest a StackPanel in a Grid. The Grid control is the most expensive layout control. I have found it's generally best to optimize thier usage out if possible. When my team at work first started using WPF, we went a little crazy and overused the grid control. It seemed to really hurt our performance when the application's layout needed to change. After replacing unneeded grid controls with lighter weight controls (such as DockPanels and StackPanels), we saw a significant difference in performance.
  25. I did not see Microsoft's CodePlex listed in this thread yet. Microsoft has been constantly upgrading and improving the free service since its launch. CodePlex supports MS Team Explorer, Teamprise, and Tortise SVN to name a few. It also has some nice features for bug tracking. CodePlex Homepage CodePlex FAQ I previously forgot to mention that CodePlex now allows sponsered ads to be placed on project pages. Maybe you'll make a buck or two off that slick open source code you upload! :-) CodePlex Advertisements
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!