Sign in to follow this  

C# Engine for Sandbox Game

This topic is 2319 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Lately I've been playing a lot of Minecraft and Terraria and I have been really sucked into the whole sandbox genre. I have intermediate knowledge of C# (Mostly WCF and Winforms, no experience with directx/opengl) and I'd like to just mess around and make a little sandbox game where I can place and manipulate 3d models. Eventually I would like to add Multiplayer to the mix and I was wondering if anyone had any recommendations for a 3D Game Engine that I can accomplish this with.

I'd like to stick with C# and I would like a higher level networking library to work with and I've been looking at Unity 3D or Essenthel Engine. I really like their level streaming capabilities which I think would really help with large levels and user generated content. I'm just looking for something simple, because as far as 3D games go I'm basically a noob.

Can anyone recommend either of these or something else?

Share this post


Link to post
Share on other sites
[quote name='RobotLong' timestamp='1312921221' post='4846860']
Lately I've been playing a lot of Minecraft and Terraria and I have been really sucked into the whole sandbox genre. I have intermediate knowledge of C# (Mostly WCF and Winforms, no experience with directx/opengl) and I'd like to just mess around and make a little sandbox game where I can place and manipulate 3d models. Eventually I would like to add Multiplayer to the mix and I was wondering if anyone had any recommendations for a 3D Game Engine that I can accomplish this with.

I'd like to stick with C# and I would like a higher level networking library to work with and I've been looking at Unity 3D or Essenthel Engine. I really like their level streaming capabilities which I think would really help with large levels and user generated content. I'm just looking for something simple, because as far as 3D games go I'm basically a noob.

Can anyone recommend either of these or something else?
[/quote]

Have you written a game before, a simple 2d game?

Share this post


Link to post
Share on other sites
Yeah, but in VB6 a long time ago. I'm not too worried about the programming personally. I just want to make a world where I can place/break things and move around and then save it. Then eventually add multiplayer and other gameplay elements. It would be a sandbox game in two aspects 1. You build stuff in a world 2. Its a testing ground for my learning of game programming.

Also, if someone could recommend a database or file type to store the level that would be great too. I was planning on sqllite because I'm familiar with it but I'm worried about the performance. Although, unlike games like minecraft I wont be generating and saving the terrain in a bunch of blocks, just the objects that I place and create.

Share this post


Link to post
Share on other sites
[quote name='RobotLong' timestamp='1312922515' post='4846875']
Yeah, but in VB6 a long time ago. I'm not too worried about the programming personally. I just want to make a world where I can place/break things and move around and then save it. Then eventually add multiplayer and other gameplay elements. It would be a sandbox game in two aspects 1. You build stuff in a world 2. Its a testing ground for my learning of game programming.

Also, if someone could recommend a database or file type to store the level that would be great too. I was planning on sqllite because I'm familiar with it but I'm worried about the performance. Although, unlike games like minecraft I wont be generating and saving the terrain in a bunch of blocks, just the objects that I place and create.
[/quote]

What do you mean by "I'm not too worried about the programming personally"? Is that meant to be like you are comfortable enough and confident enough not to worry.. or you just dont care about it? If its the latter than I think you will find yourself with a huge problem. You cant just "make" a world, you have to program the world... Im confused.

Share this post


Link to post
Share on other sites
I planned on building a terrain in the editor and then placing a bunch of props that I modeled such as foliage and rocks. The rendering of the world is already done by the engine and I won't have to program the graphics systems such as 3D rendering and lighting and such. That I'm not comfortable at all with. I don't want to build an engine, I just want to write code to add character interactions and the systems to save what the character has done (and maybe later networking). So no, I'm not programming a world really, If I was then yes I would not be comfortable. What I am comfortable with is writing all the code for those character interactions. Getting objects to spawn and snap to the terrain, rotating those objects, deleting objects, and then finally saving the objects. I'm fairly certain I can do that (I've already created a script in Unity 3D to spawn objects where I want while waiting for responses).

So, I'm sorry if this comes out as being rude but I don't need advice on what kind of project I should be making as a beginner, I think this is within my reach. I do need help finding the right tools for the job though. Should I invest money in something that will be much easier/better or should I go with a free alternative? If you could answer that, I would be very appreciative.

Share this post


Link to post
Share on other sites
[quote name='RobotLong' timestamp='1312923638' post='4846888']
I planned on building a terrain in the editor and then placing a bunch of props that I modeled such as foliage and rocks. The rendering of the world is already done by the engine and I won't have to program the graphics systems such as 3D rendering and lighting and such. That I'm not comfortable at all with. I don't want to build an engine, I just want to write code to add character interactions and the systems to save what the character has done (and maybe later networking). So no, I'm not programming a world really, If I was then yes I would not be comfortable. What I am comfortable with is writing all the code for those character interactions. Getting objects to spawn and snap to the terrain, rotating those objects, deleting objects, and then finally saving the objects. I'm fairly certain I can do that (I've already created a script in Unity 3D to spawn objects where I want while waiting for responses).

So, I'm sorry if this comes out as being rude but I don't need advice on what kind of project I should be making as a beginner, I think this is within my reach. I do need help finding the right tools for the job though. Should I invest money in something that will be much easier/better or should I go with a free alternative? If you could answer that, I would be very appreciative.
[/quote]

Not my specialty, I work with a lot lower level tools and API's. And you have to understand that people post here EVERY DAY asking about engines, languages, etc when they have never written a single line of code in their life and should not be concerned with 3D yet. So Im sorry if my initial reaction is to ask where you stand.

Share this post


Link to post
Share on other sites
That's quite alright, I've actually been on these forums before a while ago and I've seen that. If you can't recommend an engine then would you advise sqlite to save the level data? Is that at all standard for save files or is there something else more appropriate for this?

Share this post


Link to post
Share on other sites
[quote name='RobotLong' timestamp='1312924470' post='4846895']
That's quite alright, I've actually been on these forums before a while ago and I've seen that. If you can't recommend an engine then would you advise sqlite to save the level data? Is that at all standard for save files or is there something else more appropriate for this?
[/quote]

Wait, didnt you say youve already usd Unity3D? I cant think of anything better. I mean the level editor is pretty much what you need, and the only other engine that comes close would be UDK. Ive never used Unity, but Ive watched tutorials... and it seems pretty drag and drop as far as models go. Then just attaching movement scripts to the Entities... if you have already used Unity, I think its just what you should continue with.

As for as saving level data, I haven't done any multiplayer so I just use simple XML or .txt to save info like that.

Share this post


Link to post
Share on other sites
Minecraft, Terraria, and Dwarf Fortress (the present reigning champion of the procedurally generated game) are powered by noise functions. They're procedurally generated games, and therefore are almost entirely programatically(sp) constructed (other than character models and unique assets and textures). JTippetts has some great examples of how to construct Minecraft terrain, and those concepts are applicable to Terraria and Dwarf Fortress. I would investigate the C# variant of LibNoise on codeplex since you're interested in C#. I've used it, and it is a foundation of my game's heightmap, wind, rain, and mountain generation systems as well as providing the data needed to calculate rivers and biomes (early example: [url="http://img.photobucket.com/albums/v716/zediker/world_with_rivers.jpg"]http://img.photobuck...with_rivers.jpg[/url])

JTippetts's Stuff:

[url="http://www.gamedev.net/blog/33/entry-2225133-minecraft/"]http://www.gamedev.n...5133-minecraft/[/url]
[url="http://www.gamedev.net/blog/33/entry-2227887-more-on-minecraft-type-world-gen/"]http://www.gamedev.n...type-world-gen/[/url]

[url="http://www.gamedev.net/blog/33/entry-2249106-more-procedural-voxel-world-generation/"]http://www.gamedev.n...rld-generation/[/url]

I would also highly recommend the following sites:

[url="http://www.dungeonleague.com/"]http://www.dungeonleague.com/[/url]

[url="http://pixelenvy.ca/wa/ca_cave.html"]http://pixelenvy.ca/wa/ca_cave.html[/url]

[url="http://pcg.wikidot.com/"]http://pcg.wikidot.com/[/url]

[url="http://roguebasin.roguelikedevelopment.org/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels"]http://roguebasin.ro...ave-Like_Levels[/url]

Share this post


Link to post
Share on other sites
I've barely used Unity. Just messing around but yeah I'll probably stick with it.

As far as generating a world, I wasn't really considering it because I wanted to use real terrains and not just blocks. Doing the same with mesh terrain would be cool, but that could be a future project. Thanks.

Share this post


Link to post
Share on other sites
I came from the same background - plenty of C# from application dev winforms/wpf.

I can heartily recommend Unity. It is a top-down approach engine, in that you start with the big bits (e.g. meshes, scenes, all nice and wysiwyg) and then you can dig into the detail as you need it- e.g. manipulate mesh vertices, draw your own meshes, etc. Plenty of built in functions, a neat gameobject composition setup and a well thought-out asset pipeline- it's really a no-brainer for anyone wanting to mess with game development at any level.

Mike
@Runonthespot

Share this post


Link to post
Share on other sites

This topic is 2319 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this