Spodi

Members
  • Content count

    650
  • Joined

  • Last visited

Community Reputation

642 Good

About Spodi

  • Rank
    Advanced Member
  1. [b][url="http://www.netgore.com"]NetGore[/url][/b] is a free, open-source 2D online RPG engine written in C#. It is cross-platform and supports both top-down and sidescroller games. NetGore comes with a large amount of the fundamental MMORPG components built in which allows you to focus more on designing your game. [url="http://www.netgore.com/media/ss/external/01.jpg"][img]http://www.netgore.com/media/ss/external/01t.jpg[/img][/url] [url="http://www.netgore.com/media/ss/external/02.jpg"][img]http://www.netgore.com/media/ss/external/02t.jpg[/img][/url] [url="http://www.netgore.com/media/ss/external/03.jpg"][img]http://www.netgore.com/media/ss/external/03t.jpg[/img][/url] [url="http://www.netgore.com/media/ss/external/04.jpg"][img]http://www.netgore.com/media/ss/external/04t.jpg[/img][/url] [url="http://www.netgore.com/content/media.html"](view more images)[/url] [b]Purpose:[/b] The idea behind NetGore is to provide a strong foundation to build a game off of, and to provide the implementation of all the fundamental components involved in 2D online games. That way, people can spend their time with what makes their game unique and stand apart from the rest. For the past few years, the focus has been on performance, flexibility, and advanced features. Recently, the focus has shifted to making it even easier and faster to create your own game with NetGore. [b]Target audience:[/b] NetGore is intended for online multiplayer 2D games only. Although the focus is mainly on real-time RPGs, most any kind of multiplayer 2D game is fine. Some users have already implemented shooters and turn-based combat. We also focus especially on indie developers in numerous ways, such as by including a lot of the features for you and providing a fully-functional base game to work off of. [b]Features:[/b] A detailed list of features can be found on the [url="http://www.netgore.com/content/about.html"]about page[/url], but in short, most of the basic (and some more advanced) MMORPG features are built in to the engine. More features are always being added as well based on the demand for them. [b]Links:[/b] [b][url="http://www.netgore.com/"]Home page[/url][/b] [url="http://www.netgore.com/content/media.html"]Screenshots[/url] [url="http://www.netgore.com/content/downloads.html"]Download page[/url] Any feedback is appreciated, either here or through the [url="http://www.netgore.com/forums"]NetGore forums[/url].
  2. I'm looking for people who want to develop a multiplayer RPG using my engine, [url="http://www.netgore.com/"]NetGore[/url]. I plan to do majority of the programming, but am leaving everything else up to others, including designing the actual game. The engine is mostly complete, and being the one who created it, I can work quickly in it. I tried to make my own game before, but turns out I have very little interest in actual game development - I just like doing the programming. For more info, please see: [url="http://www.netgore.com/forums/post/netgores-creator-looking-team.html"]http://www.netgore.c...oking-team.html[/url] Some engine eye-candy: [url="http://www.netgore.com/media/ss/030/04.jpg"][img]http://www.netgore.com/media/ss/030/04t.jpg[/img][/url] [url="http://www.netgore.com/media/ss/030/03.jpg"][img]http://www.netgore.com/media/ss/030/03t.jpg[/img][/url] [url="http://www.netgore.com/media/ss/030/09.jpg"][img]http://www.netgore.com/media/ss/030/09t.jpg[/img][/url] [url="http://www.netgore.com/media/ss/svo/03.jpg"][img]http://www.netgore.com/media/ss/svo/03t.jpg[/img][/url] [url="http://www.netgore.com/media/ss/030/13.jpg"][img]http://www.netgore.com/media/ss/030/13t.jpg[/img][/url]
  3. I'm not surprised. The free version was already being annoying about buying the full version. Anyways, this is just for the new Reflector. Older versions still work just fine (assuming they didn't program a "self destruct" into the program, in which case that would be very questionable practices). [quote][color=#1C2837][size=2]This is especially hypocritical since you yourself ask for donations on your site for your software.[/quote][/size][/color] [color=#1C2837][size=2] [/size][/color] [size="2"][color="#1C2837"]In all fairness, asking for donations isn't the same as charging for your software. But I guess what you're getting at is that everybody needs to earn money.[/color][/size]
  4. [font=arial, verdana, tahoma, sans-serif][size=2]When using [color=#1C2837][size=2]Format32bppArgb , make sure you set the alpha channel to 255.[/size][/color][/size][/font]
  5. turnpast's suggestion is definitely worth checking out, but that seems quite unsafe. As long as the format you specify in LockBits is the same format as you specified in Bitmap, I don't see why it wouldn't just give you a direct pointer to the pixel data. In which case, LockBits would likely be serving as a form of safe synchronization and protecting you from Bad Things. Will be interested to hear what the results are.
  6. [font="arial, verdana, tahoma, sans-serif"][size="2"]I couldn't come up with any big speed improvements, but a few small changes did speed things up from about 49ms to 29ms per frame for me. 1. Change some of the style settings for the target PictureBox. You have to do this by creating a derived class and using that instead. Ex:[/size][/font] [code] class MyPictureBox : PictureBox { public MyPictureBox() { SetStyle(System.Windows.Forms.ControlStyles.UserPaint, true); SetStyle(System.Windows.Forms.ControlStyles.Opaque, true); SetStyle(System.Windows.Forms.ControlStyles.FixedWidth, true); SetStyle(System.Windows.Forms.ControlStyles.FixedHeight, true); SetStyle(System.Windows.Forms.ControlStyles.AllPaintingInWmPaint, true); SetStyle(System.Windows.Forms.ControlStyles.CacheText, false); SetStyle(System.Windows.Forms.ControlStyles.ContainerControl, false); SetStyle(System.Windows.Forms.ControlStyles.SupportsTransparentBackColor, false); } }[/code] 2. Improve the pixel set loop code (a quick hack): [code] unsafe { for (int y = 0; y < height; y++) { byte* row = (byte*)bmpData.Scan0 + (y * bmpData.Stride); for (int x = 0; x < width; x++) { int* r = (int*)&row[x * 3]; *r = (x + px) | ((y + px) << 8); } } }[/code] 3. When using LockBits, use ImageLockMode.WriteOnly. 4. When creating the bitmap, specify the format you will be using: [code]bitmap = new Bitmap(1920, 1100, PixelFormat.Format24bppRgb);[/code]
  7. NetGore - Online RPG engine

    Version 0.3.6 has been released. Change log: [QUOTE]- Added code documentation for a huge number of exceptions (making it easier to determine what exceptions a method may throw) - Fixed InstallationValidator's detection for latest versions of MySQL - Fixed user respawn position logic - Fixed teleport logic - Fixed a few incorrectly written queries - Fixed memory leak when reloading lazy images, along with some other improvements to lazy-loaded assets - Added ability to specify modifier keys for certain input events - Updated used versions of Lidgren Networking Library, SFML, and NUnit - Various improvements to the UI of the editor - Added sanity checks for some server configuration values[/QUOTE]
  8. .NET can run on Linux and Mac via Mono. I personally use C# and SFML to make my C# MORPG engine cross-platform.
  9. NetGore - Online RPG engine

    Version 0.3.5 has been released. Quote:Version change log This release mostly contains bug fixes and design improvements, both in the database and in code. - Many database tables now use auto_increment instead of the next free ID. Tables that do not insert/delete rows outside the editor, such as character and item templates, still use the next free ID. - Added EventCounters class, which is like a very high-performance, light-weight version of WorldStats. See the feature description for more details. - All object events now use EventHandler to adhere to the .NET standard practices better - All events in NetGore are now invoked by using a .Raise() extension method that will, by default, log and swallow any exceptions thrown by the event listeners - Added new mini-project to check the NetGore code to make sure events are all being invoked properly - Content files can now be "recycled", which puts them in a special "recycled" asset folder instead of actually deleting them. Basically like a custom Recycling Bin for NetGore's content. - The sound and music can now be edited and auto-updated via the editor - Can now properly create and delete particle effects and emitters - Can now define custom filters in StringRules - When there is an issue with loading content, it won't spawn a message box every second And as always, many more changes were made, and the complete listing can be found in the SVN logs. [Edited by - Spodi on December 17, 2010 8:14:30 AM]
  10. Should MMORPGs use encryption?

    Using encryption is fine, and something I'd definitely recommend. Though use it with the intention of obfuscation, and don't ever rely on it actually hiding anything. From all standpoints of the development, you should continue to assume your messages sent over the network are 100% readable (as in understandable) by everyone. Even something simple like a bitwise XOR encryption with a predefined set of rotating keys (or a single, mutating key) would work well enough to prevent the basic packet replaying, which is a pretty common form of basic hacking in multiplayer games. There is a huge step in technical difficultly between replaying packets and deciphering the encryption and sending encrypted packets. You won't stop the dedicated cheaters, but you will be able to stop most of the "script kiddies". Though there are a few occasions where you actually want to encrypt for the sake of privacy. A common place is user credentials (namely the password). For this, if you want to keep it secure (which you should if its really a "massive" online game), use existing asymmetric key encryption techniques. The reason you won't want to just set up asymmetric encryption for the whole session is because the encryptions are serving two totally different purposes in this case. The general encryption is intended to be cheap and introduce minimal (or preferably no) inflation, and has the purpose of obfuscating data for everyone. Encrypting private information, such as account credentials, has the purpose of hiding data from everyone eavesdropping - it isn't intended to hide anything from either of the endpoints. Encryption can also be useful for authentication. For instance, if you have an in-game cash shop that can be purchased from at any time, some jerk might just start sending the "buy from shop" message to the server while pretending to be a different client. If they get lucky, then can make someone buy something by "injecting" that network message. But it will take more than a simple rotating key to protect against this.
  11. NetGore - Online RPG engine

    Version 0.3.4 has been released.
  12. NetGore - Online RPG engine

    Version 0.3.3 released, and the size of the download has been shrunk significantly (to ~3.5 MB) to make it easier to quickly check out. [Edited by - Spodi on November 24, 2010 2:42:23 PM]
  13. NetGore - Online RPG engine

    Version 0.3.2 has been released. :) [Edited by - Spodi on November 24, 2010 2:27:30 PM]
  14. Website: www.netgore.com NetGore is a free, open-source, cross-platform online RPG engine written in C#. It focuses on 2D games and is targeted towards indy and small-time developers looking to build their own online RPG. Both top-down and side-scroller style games are supported. (view all screenshots) A large majority of the gameplay components are already implemented into the engine for you, such as stats, skills, quests, NPC chat, guilds, groups, etc. As of the current version (0.3.0), the focus is mostly on improving the stuff that already exists and making the editors easier to use. There are already a few people developing games with NetGore, and we hope to see some more! :) Links: Home Google Code project page [Edited by - Spodi on November 24, 2010 2:40:42 PM]
  15. Override the OnPaint() and OnPaintBackground() methods. I too have a custom control in my project that provides a container for OpenGL rendering (using SFML). If you want to check out how mine looks: http://code.google.com/p/netgore/source/browse/netgore/trunk/NetGore.Editor/WinForms/GraphicsDeviceControl.cs