Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: NetGore - C# open source MORPG engine  (Read 24475 times)

0 Members and 1 Guest are viewing this topic.

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« on: April 08, 2010, 06:06:03 pm »
NetGore 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.


(view more images)

Purpose: 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.

Target audience: 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.

Features: A detailed list of features can be found on the about page, 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.

Links:
Home page
Screenshots
Download page

Any feedback is appreciated, either here or through the NetGore forums.
« Last Edit: December 15, 2012, 07:48:19 pm by Spodi »

Gekius

  • Newbie
  • *
  • Posts: 26
    • View Profile
NetGore - C# open source MORPG engine
« Reply #1 on: April 16, 2010, 09:32:15 pm »
I'm curious about your choice. Why did you change XNA for SFML ? Just to have the cross-platform feature ?

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #2 on: April 17, 2010, 01:16:49 am »
Cross-platform was just a bonus. I can't think of all the reasons off the top of my head, but in brief, the big ones were:

  • Content pipeline - XNA pretty much forces you to compile your content. Loading bmps/pngs directly isn't very pretty, gives you assets that aren't able to be added to the ContentManager, and I believe is even deprecated now. While I like the idea of it, it made build times quite horrible. I didn't want people to have to manually add assets to the solution, so to even get them to build I had to create a custom msbuild project to do a "search and build". Even when content was already built, it took a good 4 seconds for just about 100 files. When they had to build, it took a good 20 seconds. Now, I just run a program in post-build that does a threaded compare/copy, and is nearly instant.
  • ContentManager - I didn't like having to unload all content in one call, nor did I like having to maintain multiple ContentManagers. However, altering the ContentManager is brutal in XNA. Even just loading content without it is rough, so you can't just "roll your own" easily.
  • Music - You HAVE to have Windows Media Player installed to use music in XNA, which was more just annoying. Playing music for the first time also resulted in a like 3 second stall on the calling thread, so I had to make a hack to create a background thread to just "prepare" the music.
  • Portability - I never really cared if the client was cross-platform, but the server needs to be. This engine is focused at indy developers, and Linux VPSes are almost always significantly cheaper than Windows ones. Grabbing primitives like Vector2 and Rectangle and using those without referencing XNA got quite ugly and required some reference-juggling via msbuild hacks.
  • Distribution - SFML is tiny. XNA isn't too big (a few MB), but the installation can be quite long for such a tiny thing.
  • Text input - There just isn't any of it in XNA. It was annoying enough to get EN-US keyboard text to work. To support other keyboard layouts, it was looking like it would require some Windows API calls to transform the real keys into virtual keys to get the text.
  • "The XNA way" - XNA pretty much forces you to use "their way". Usually, this wan't a problem. But at times, it became quite annoying (see ContentManager above). SFML isn't perfect either, nor is really any other engine (absolute flexibility just isn't really realistic), but at least SFML is open source so I can just change the engine. And this has turned out incredibly useful.


XNA isn't bad, it just wasn't suiting my needs.

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #3 on: April 24, 2010, 05:36:33 pm »
Finally released the SFML version if anyone is interested in checking it out. :)

Wander

  • Full Member
  • ***
  • Posts: 170
    • View Profile
    • Email
NetGore - C# open source MORPG engine
« Reply #4 on: August 16, 2010, 03:22:17 am »
Haha! Nice Runescape Icons. :D
-Wander

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #5 on: October 14, 2010, 11:02:52 am »
Just recently released version 0.3.0 which implements a huge amount of new stuff, including taking advantage of more of SFML's features - namely shaders and RenderImages to improve the light handling and add refractions (see water in second screenshot). The demo game's visuals have also been improved, upgrading it from "super ugly" to just "regular ugly". :wink:

Some screenshots:


(more here)

Site: www.netgore.com

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #6 on: November 02, 2010, 07:29:54 am »
Version 0.3.2 has been released. :)

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #7 on: November 11, 2010, 01:42:30 am »
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.

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #8 on: November 24, 2010, 09:42:05 pm »
Version 0.3.4 has been released.

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #9 on: December 17, 2010, 01:16:46 am »
Version 0.3.5 has been released.

Quote from: "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.

Spodi

  • Full Member
  • ***
  • Posts: 150
    • View Profile
    • http://www.netgore.com/
NetGore - C# open source MORPG engine
« Reply #10 on: January 31, 2011, 03:07:51 am »
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

Brendon

  • Jr. Member
  • **
  • Posts: 83
    • View Profile
    • http://blendogames.com
NetGore - C# open source MORPG engine
« Reply #11 on: March 19, 2011, 12:12:07 am »
Nice!  Can you talk a bit about how you handle multiplayer code?  Do you use the built-in .Net networking, or do you use an external library?

Groogy

  • Hero Member
  • *****
  • Posts: 1469
    • MSN Messenger - groogy@groogy.se
    • View Profile
    • http://www.groogy.se
    • Email
NetGore - C# open source MORPG engine
« Reply #12 on: March 19, 2011, 01:05:15 am »
Quote from: "Brendon"
Nice!  Can you talk a bit about how you handle multiplayer code?  Do you use the built-in .Net networking, or do you use an external library?


Plans for your next game? If I might ask ;)
Developer and Maker of rbSFML and Programmer at Paradox Development Studio

Brendon

  • Jr. Member
  • **
  • Posts: 83
    • View Profile
    • http://blendogames.com
NetGore - C# open source MORPG engine
« Reply #13 on: March 19, 2011, 04:36:18 am »
@Groogy - maybe!

theweirdn8

  • Newbie
  • *
  • Posts: 17
    • MSN Messenger - staff@tailware.com
    • View Profile
    • http://www.pawbyte.com
NetGore - C# open source MORPG engine
« Reply #14 on: March 22, 2011, 03:56:01 am »
the graphical style of this is indeed interesting.

 

anything