Kodewerx
https://www.kodewerx.org/forum/

C# and game development
https://www.kodewerx.org/forum/viewtopic.php?f=24&t=7049
Page 1 of 2

Author:  Parasyte [ Tue Oct 13, 2009 4:35 pm ]
Post subject:  C# and game development

Pronounced "See Sharp" this is what Visual Basic has evolved into. A C-like language which resembles JavaScript more than C or C++. But, this isn't JavaScript. Where JavaScript is a very beautiful [poetic, even] language, C# is a mockery of the C-style syntax flavored with the rancid taste of Visual Basic and morbid stench of Java.

I can't say [yet] that I hate C3, or even dislike it. But the description above is enough to make you wonder.

That said, are any of you foul beasties familiar with this language? I recently stumbled upon a project written in C# which I wish to port to Mono. (Mono, on the other hand, is a badly-named open source implementation of the Microsoft .NET framework, available for Linux, OS X, Windows, etc.; The name is actually more humorous than annoying, in fact. It is almost as epic as ReactOS, should it be renamed to "AIDS.") The project in question is the Scrolling Game Development Kit 2. For those oldbies among us who recall making simple, albeit silly, games in The Games Factory, and the like... SGDK2 will bring back some fond memories of youth, boredom, and creativity.

For those of you unfamiliar, a program like SGDK2 allows you (being the non-programmer, non-artist, non-musician, non-director, non-producer, game-developer-wannabe sort) to create video games. Basically, you draw some background tiles, some characters, then draw levels with your background tiles, add some sprites, defines a couple of simple logic rules to be applied by the game engine every frame (for example, "do gravity," "collide sprites," "player control...") And viola! You have made a video game.

It's a great idea, but with a few drawbacks. Namely, I want such a program that is open source, meaning essentially, free-for-me. No crackz, no stolen serialz, no freeware, no shareware; open source. To that end, there's SGDK, and SGDK2. SGDK suffers only from being written in (I believe) Visual Basic, making it rather worthless to me (primarily a Mac OS X user). And SGDK2 suffers from being written in C#. However, in the case of C#, I can at least pretend to use the program with Mono. (Mono, as far as you should know, is fairly complete, but still contains bugs making it a pain in the ass - at best - to use daily.)

So, while I flail around in the dark, trying to get this program running on OS X, and losing plenty of possible game development time, I ask again if anyone here is familiar with the language, and/or holds any sort of interest in creating games. If so, this is probably a good place to start!

What I need, (briefly) is to document all bugs in SGDK2 (or Mono) which makes it difficult or impossible to use on OS X/Linux. So far, I've filed a couple of bugs on the sourceforge project's bug tracker to this end. This is *very* incomplete, but at least highlights some of the major issues.

Second, I need to make test case apps (small/minimal pieces of C# code which demonstrates the bug(s)), especially where Mono bugs are concerned. This quite scares me, because I'm so unfamiliar with C# and the ridiculous Hello World [see below] is of no use whatsoever. Basically, this.
Code:
System.Console.WriteLine("Hello, World!");


Third, I need workarounds or patches for Mono which enable SGDK2 to run properly.

Finally, I need to sit my ass down and make a few stupid little toy video games. This is mostly just to gain some personal experience with the game development process. I fully intend to work myself up to using the Blender game engine to create games which are more up to modern [commercial-level] standards.


So that's what I'm doing with C#. Any takers?

Author:  HyperHacker [ Tue Oct 13, 2009 4:54 pm ]
Post subject:  Re: C# and game development

Um...

You're interested in, and working on, a generic game engine designed for people who know nothing about coding?

You are?

And you're doing it in an icky Microsoft bytecode language? On a Mac?

And you like Javascript?

Have you hit your head lately? You've always been the guy who eats machine code for breakfast and shits out insane hacks like Jesus Mode, and you're interested in a premade generic game engine for non-coders? Wha...

Author:  Parasyte [ Tue Oct 13, 2009 5:26 pm ]
Post subject:  Re: C# and game development

HyperHacker wrote:
You're interested in, and working on, a generic game engine designed for people who know nothing about coding?

Yes.
HyperHacker wrote:
And you're doing it in an icky Microsoft bytecode language? On a Mac?

Not my first choice, but given the circumstances, yes. (I am open to alternatives.)
HyperHacker wrote:
And you like Javascript?

Absolutely! Are you stuck in 1998, contributing to JavaScript being The World's Most Misunderstood Programming Language? Are you not aware of how incredibly powerful and elegant the language is? For shame!
HyperHacker wrote:
Have you hit your head lately? You've always been the guy who eats machine code for breakfast and shits out insane hacks like Jesus Mode, and you're interested in a premade generic game engine for non-coders? Wha...

On the contrary! Machine code and Jesus Modes have their place, by all means. But you don't create full featured games alone in secrecy unless you are truly mad (eg. able to sustain several years of monotonous work without so much as a congratulations).

Instead, you gather some friends together, some of which probably have no experience with any sort of development, but at the least have a desire (childhood dream or otherwise) to make video games. In this case, you want to start with something extremely basic. Say, a generic pre-made game engine for non-coders? Then you create toy games (keyword: toy) to gather some morale and whatnot, before weening them off of it for some real development work with tools closer resembling Blender. (Which, I might add, is another "generic pre-made game engine for non-coders" just like, oh, let's say the Unreal Engine, Gamebryo, or RenderWare!)

So while I'm still quite sane, and my head is fine otherwise, I'm just looking at things a bit differently. We aren't in 1985; consoles now run full-fledged operating systems, and writing a game from scratch is far-far too much work. If I was working on a pure NES game, then yes I would definitely write the core pieces of it in assembly, and build it all from nothing. That's my case; today's game developer doesn't fart around with assemblers when a high level language can create more elegant and reusable code, and they never start from scratch if they can help it.


That good and out of the way, here are some free resources which might help out some inspiring game developers:

2D Graphics:
* Open Clipart Library

3D Models:
* Blender Model Repository
* Blender Open Model Repository
* Scopia's Free 3D Models

Blender Tutorials
* Blender 3D Design Course
* Blender Game Engine
* Blender Video Tutorials
* CGTalk Forums - Blender
* Johnny Blender - Blender Tutorial Series

Sound Effects:
* The Freesound Project

Music:
* N/A -- Make a suggestion?

Author:  Hextator [ Tue Oct 13, 2009 8:56 pm ]
Post subject: 

So I'm NOT completely incompetent for starting with RPG Maker 2000 back when I was a tyke and working my way up to Blender?

What's that? You say I'm incompetent anyway for other reasons?

Dammit.

Blender was a great idea though; my thanks to the Havok guy who broke off and made it for the public.

Author:  jleemero [ Tue Oct 13, 2009 9:27 pm ]
Post subject:  Re: C# and game development

I'm familiar with C#, I am.
More so than I'd like to be.

Parasyte, for the love of God, do not touch it.
It's disgusting, and I fucking hate it.

I'd rather use Java than C#, and many (HEXTATOR) can attest to my hatred of Java.
At least Java is a real language.
C# is to programming what Weeds are to a flower garden.


I only wish that this was more relevant to your situation.

Author:  Parasyte [ Tue Oct 13, 2009 9:37 pm ]
Post subject:  Re: C# and game development

A nice looking alternative to Blender is the Crystal Space project. Blender just seems to me a more tightly integrated suite. Both can be used to create some very impressive games (on a budget of $0).

Examples with Blender:
* Untitled WIP "RC Car Game" by Mike Pan.
(Youtube video of the project in action)
* Apricot Open Game Project, Yo Frankie!

Examples with Crystal Space:
* PlaneShift; a WIP MMORPG.
* Apricot Open Game Project, Yo Frankie!

Interesting they made Yo Frankie! for both game engines. Apparently the differences are that the Blender version has more levels and such, and the Crystal Space version has more eye candy.

Author:  jleemero [ Tue Oct 13, 2009 9:48 pm ]
Post subject:  Re: C# and game development

And suddenly I'm reminded of the fact that there was a time when I likened development for the Gameboy to things like Game Maker 'n' whatnot, simply because you were given so little freedom, and so many things could only be done "one way", and it was honestly quite easy and fun to do.
But to expand to anything that wasn't essentially "built-in" quickly became complicated, and by no means trivial.

I guess that's why I don't like Game Maker "Type" software.
Not enough freedom.

And that's probably why I found so much comfort in Flash.
You have a VERY usable programming language, in the form of ActionScript, itself based on Javascript (<3).
But the simplest, as well as some of the most complex tasks are all taken care of.
Making a simple game is comparable in difficulty to using a dedicated "Game Making" Application, but you're given far more control over each and every aspect of your project.


It's been a long damn time since I've made anything, for anything, really.
Bleh.

Author:  Parasyte [ Wed Oct 14, 2009 5:29 pm ]
Post subject:  Re: C# and game development

Yet another alternative: Panda3D.

Keep in mind, these last few links have been for open source 3D game engines/SDKs, which have nothing to do with C# or SGDK2.

Author:  jleemero [ Wed Oct 14, 2009 7:47 pm ]
Post subject:  Re: C# and game development

Parasyte wrote:
Yet another alternative: Panda3D.

That's... Heh.
Full Python support.

I'mma have to take a look at this.

Author:  Hextator [ Wed Oct 14, 2009 8:26 pm ]
Post subject: 

Whoa, Panda3D looks impressive. I almost want to get back to screwing with game dev myself again...

Author:  Parasyte [ Wed Oct 14, 2009 8:51 pm ]
Post subject:  Re: C# and game development

I threw together the sample Panda3D "hello world" from the manual, and then added some sexy anti-aliasing. It helps a bit, but it really needs some shaders to liven up the scene, make it not so cartoony, you know?

Final "hello world" sample:
Image

And with 4x AA:
Image

It only took a couple minutes to get it up and running. I'm starting to dig Panda3D. And with the modified BSD license, it's probably just about perfect for anybody.

Author:  jleemero [ Wed Oct 14, 2009 11:15 pm ]
Post subject:  Re: C# and game development

Is me forcing a Panda to do the Moonwalk back-and-forth through a clearing "Science"?

You bet your sweet ass it is.

Author:  Parasyte [ Fri Oct 16, 2009 6:40 pm ]
Post subject:  Re: C# and game development

And here's the "Nature Demo" with some fixes that I made...

* Added 4x multi-sampling AA
* Fixed the mouse-look jerkiness
* Extended the grass clipping

I kind of want some better lighting, too. Some normal maps, bloom + high dynamic range, ... maybe some depth of field. :) And the water needs work, too. Explicitly, it needs a little refraction on the lake bed.

Image

Author:  jleemero [ Fri Oct 16, 2009 10:03 pm ]
Post subject:  Re: C# and game development

I can't get AA to work the way I want it to, even in something as simple as the Panda demo.
It's either 16x, or nothing at all, and while I've found out "how" to do AA, I haven't actually found any useful information, so I have no fucking clue what exactly the code I'm using is doing.
Dammit.

Author:  Parasyte [ Fri Oct 16, 2009 10:21 pm ]
Post subject:  Re: C# and game development

This is how I do it...

Before your 'import direct.directbase.DirectStart', you'll want to add:
Code:
from pandac.PandaModules import loadPrcFileData
loadPrcFileData('', 'framebuffer-multisample 1')
loadPrcFileData('', 'multisamples 16')

To allow Panda3D to use 16x multi-sampling. (My card only supports 4x, apparently.)

And to enable it, put this in your initialization:
Code:
        render.setAntialias(AntialiasAttrib.MMultisample)


Sadly, AA does NOT work if you enable the "bloom" filter. Something about the filter faking bloom by rendering to a texture (without AA) and just shoving that texture in front of the camera.

Author:  jleemero [ Sat Oct 17, 2009 12:59 am ]
Post subject:  Re: C# and game development

Exactly how I'm doing it.

But I can't get it to do anything but 16x.
Off, or On, that's the limit of my control.

Annoying, but meh, 'tis the least of my concerns right now.

Author:  Parasyte [ Sat Oct 17, 2009 2:10 pm ]
Post subject:  Re: C# and game development

I see. And yes, I have a similar problem with the documentation. The API reference is far from complete. And it seems the best pieces of information come from the wiki, the forums, and the included sample projects. Sadly, like you say, these resources can [usually] tell you how to do something, but there are few details what it's for, or why it must be done in that way.

For example, fixing the mouse-look jumpiness was simple; "just set the mouse mode to relative" I read in the forums. It took another Google search to find that setting the mouse mode to relative involves only a single line of code:
Code:
        props.setMouseMode(WindowProperties.MRelative)

And, it works great! But what the fuck does it do? It's a secret to everybody.

Commenting out the code that hides the mouse pointer, you can see that without this magic blackbox code, the cursor bounces and jumps around in the center of the window frantically, kind of like the viewport itself does. With this added line of code, the mouse stays perfectly locked to the center of the window, and the viewport mouse-look is as smooth as can be. So ... fuck knows!

That's the only problem I'm having with Panda3D at the moment. I'm partially inclined to just stick to Blender and its built-in Game Engine. At least I have seen some really nice video tutorials that explain how to do what I want, and why some of the oddities in the process are necessary.

Author:  Parasyte [ Sat Oct 17, 2009 2:38 pm ]
Post subject:  Re: C# and game development

And some more useful resources:

* GameBlender.org Wiki
* GameBlender.org Forums
* Roberto Roch's Blog; Blender video tutorials and modeling examples

Author:  Hextator [ Tue Nov 03, 2009 1:42 pm ]
Post subject: 

Which eats up more CPU resources? Blender or Panda3D?

I just realized how much of a bitch it's going to be to do any more work in Blender if it's going to eat my CPU.

Author:  Parasyte [ Wed Nov 04, 2009 3:12 pm ]
Post subject:  Re: C# and game development

They are probably about the same, really. 3D processing is going to put the most strain on your GPU(s). Blender (a 3D modeling tool) is also going to work your system memory, depending on how you use it. (A common problem is attempting to do high-poly modeling, which eats up tons of memory, as it has to keep track of millions of vertices, faces, UV maps, etc. The solution is simple, though; do low-poly modeling with smoothing enabled on top of a sub-surface modifier. That keeps the amount of real nodes at a minimum, and creates dynamic nodes where necessary to create the level of detail you want.)

A PC with moderate specs (My laptop, for example: 2.8GHz Core 2 Duo, 4GB RAM, nVidia 9600M GT...) will run them both just fine.

Author:  Hextator [ Wed Nov 04, 2009 6:16 pm ]
Post subject: 

You have a freaking 2.8 GHz laptop?

I have a 3.19 GHz desktop that I'm on, but the vidja card is mad olde.

I only have a single gigabyte of RAM though. I can run Blender fine; it's just annoying listening to the fan go the whole time.

I'm glad I wrote down what I had learned about how to use Blender, because the help menu is all but navigable. I had forgotten everything I learned since the time I first messed with it and when I picked it up again the other day. That was a pain.

Author:  Parasyte [ Thu Nov 05, 2009 9:44 am ]
Post subject:  Re: C# and game development

Yes, a 2.8GHz Core 2 Duo in my laptop. It's a year old. :( Almost time for a new one.

Learning to use Blender; look at some of the video tutorials linked above. Nothing else I know of is quite as handy.

Author:  Hextator [ Thu Nov 05, 2009 9:47 am ]
Post subject: 

If I recall, video tutorials are how I learned what I knew to begin with.

The text file I spoke of contains this:

Quote:
Camera - Shift/Ctrl and/or Middle Mouse Wheel
Moving objects - G and mouse (with X, Y or Z to move along axis) or click the arrows
Creating objects - Hit Space to open the object menu after picking the target location
with a left click
Scaling objects - Hit S while an object is selected and scale with the mouse or a preset
multiple by pressing a number key
Edit mode - TAB when object is selected
Subdivisions - Press W with object selected to choose
Extrusion - Press E when vertex, edge or plane is selected
Merging - Press W with things to merge selected and select "Merge"
Building faces - Press F when at least 3 vertices are selected to make the area bounded by
them into a face

If there's any more simplified tidbits you'd like to add, feel free.

Author:  Belegorad [ Fri Apr 30, 2010 9:23 am ]
Post subject:  Re: C# and game development

Parasyte wrote:
Music:
* N/A -- Make a suggestion?

I'd imagine any program such as FL studios or Audacity should suffice?

<.< Alternatively enslave a local peon whom has the program, free time, and would be willing to work for free?

Author:  Parasyte [ Fri Apr 30, 2010 3:10 pm ]
Post subject:  Re: C# and game development

Well, I was really looking for something like free (public domain/creative commons) samples, loops, tracks, songs, etc.

There are a number of open source trackers, composers, synthesizers, and DAWs. Here's a list that I can think of off the top of my head:

Author:  Sappharad [ Wed Nov 03, 2010 8:20 pm ]
Post subject:  Re: C# and game development

I know this began over a year ago, but maybe it's still somehow relevant. (Although if you reply I might not read it for a year)

I've been doing C# development full-time for the last 2 and a half years. I've done a little with mono (compiled Paint.NET, wrote some command line utils, and tried to port the huge application I work on at work only to discover it crashes the Mono compiler trying to build without any traceable reason) so I at least have some experience with that. But I don't really know what you're asking. Are you wanting someone to port the application for you? Or just find bugs in Mono? (There are a lot)

If you're still interested, I can look into it the next time I want something new to do. Though I don't see the point in porting it to mono. I've found that .NET applications run fine in WINE/Crossover.

Author:  Parasyte [ Thu Nov 04, 2010 4:48 pm ]
Post subject:  Re: C# and game development

Yeah, I kind of gave up on this whole thing. HTML5 & friends seems like the way to go.

Author:  James0x57 [ Thu Nov 04, 2010 5:50 pm ]
Post subject:  Re: C# and game development

Oh hello!
This could be the perfect motivation for me to tackle two of my project ideas in one go...
*ponders*

Author:  Hextator [ Fri Nov 05, 2010 3:13 pm ]
Post subject:  Re: C# and game development

How 3D does this HTML 5 business get? Is it competent on average with other systems for 3D games?

Author:  Parasyte [ Fri Nov 05, 2010 4:15 pm ]
Post subject:  Re: C# and game development

I guess you haven't seen WebGL. If you're not running a development version of a recent browser that supports WebGL, have a look at some of the Youtube videos: http://www.youtube.com/results?search_query=webgl

So the short answer to your question is, "yes."

Page 1 of 2 All times are UTC - 8 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/