Remind me what BlitzMax has over C#?

Miscellaneous Forums/General Discussion/Remind me what BlitzMax has over C#?

I'm playing with TV3D in both BMax and C# to try and weed out any bugs, and I'm finding it hard to remember why I wanted to write the game in BMax. ( Don't worry, I'm not going to ditch the wrapper either way. )

Ok BlitzMax doesn't need .Net, but that's not going to be an issue for this game. Speed doesn't seem to be an issue. If anything, C# may even be slightly faster ( through not using a wrapper, I assume )

There must be more reasons to use BMax over C#.

it's much quicker to write games in?

it's much quicker to write games in?


I don't see why it would be. I have the same 3d engine either way, and the .Net Framework has just as much ( well much more really ) stuff built in as BMax. In fact, one of the reasons I posted this question is because I've just realised that I can convert a BMax demo to C# much faster than I can do it the other way around. The VS2005 IDE is much, much nicer than I gave it credit for.

BlitzMax is cross platform ;)

C# is avaliable for mac and linux too. Looks a lot more like bmax compared to C++. Also XNA and the possibly the new xbox SDK for indies will be using it for easy xbox360 PC game dev.

Were thinking of using it in combination with Ogre3d instead of Bmax or Torque.

yup..C# offering more freedom..and with this upcoming (I hope so) Microsoft SDK for Xbox 360, C# looking much more like best bet than all other stuff around..

So use C# then. Right tool for the job and all that.

I think it's simply coz we like BlitzMax.

TV3D is good, porting it will make many user able to use it(like OGRE/Irrlicht/3Impact ones in this forum).

As to Win32 platfrom only thing, I use 3Impact with gman's nice wrapper, and using Cipher with VC6(both are outdated, but still work, Cipher is still powerful enough)

Don't know how much ppl are waiting Max3D? Who knows what Max3D will be? Cross Platform, Latest DX, Statically Linked to Exe, Built in ODE... too much suspection might get disappointed when it's out, however BRL did many great job sine the first Win32 Blitz is out, so wait and see.

Already using it (VC++ precisely) with PR6..but thanks for suggestions anyway..

VC++ precisely


Well then no.. you aren't already using it. C++ and C# are not the same thing. Saying they are the same thing would be akin to saying that Catholicism is the same thing as Judaism. Just doesn't work no matter how you look at it.

Well I can't think of anything. Then again I don't own blitzmax, and as Gabriel already knows, I'm a vocal c# zealot :)

C# has language features that I always wished blitz had, and more. Things that I haven't seen in max( Only used the demo on a couple of occasions, so I could be wrong ).

-True Constructors
-Function Overloading
-Enumerations
-Dll Creation
-Properties
-Indexers
-Generics

theres more, but those are the ones that really stick out in my head. I use those all quite reqularly.

Performance wise, when you you know what you're doing, c# is pretty damn fast. On a recent codersworkshop thread( about bmax vs purebasic performance ), someone posted a Sieves of eratosthenes zip. I converted the c++ version to c# 2.0.

On my machine, the c# version is faster than the b3d, pure, max, and c++ versions. I'll post it if anyone's interested.

Sorry If I'm rootin for the wrong team :)

C# is more advanced, but if you have no game libraries at your disposal, then Max is quicker to make games in.

BlitzMax is cross platform ;)


True, but TV3D is Windows only already, so that won't be an issue for me.

C# has language features that I always wished blitz had, and more. Things that I haven't seen in max( Only used the demo on a couple of occasions, so I could be wrong ).

-True Constructors
-Function Overloading
-Enumerations
-Dll Creation
-Properties
-Indexers
-Generics


Quite right, those are all things BMax doesn't have and with the exception of the last two ( which I haven't learned yet unless I just don't recognise the terms ) I would agree that they're very useful. I also believe C# has delegates ( type-safe method pointers ) and BMax only has function pointers.

Nope, there are certainly advantages that BMax has over C# but perhaps not for this project in particular. OEJ may be right, perhaps C# is the right tool for this job. Thanks guys.

So far no-one has written an x360 game in c#, its considered too slow.

that's interesting...seeing as they all compile to the same clr...

considerations...

http://devhawk.net/
Wednesday, March 22, 2006
CLR Everywhere
Big news from the Game Developers Conference this week is the XNA Framework. From the press release:

The XNA Framework contains a custom implementation of the Microsoft® .NET Framework and new game-development-specific libraries designed to help game developers more easily create cross-platform games on Windows® and Xbox 360 using the highly productive C# programming language. Using the XNA Framework, game developers will benefit from the ability to re-use code and game assets in developing multiplatform titles, without sacrificing performance or flexibility.

So now I can the Xbox to the list of personal technology I can program, joining my phone, my TV, my server and my laptop all with C# or VB (VB plug brought to you by Brian and Erik who think I should to switch). I wonder if XNA Framework will support WPF?



http://www.thezbuffer.com/

GDC06: Day 1
Nothing too earth shattering happening here. Microsoft made the formal announcement about the XNA framework confirming the rumors last week:

XNA Framework
Microsoft unveiled the XNA Framework at the Game Developers Conference 2006. The XNA Framework is an exciting new development and execution environment which will allow game developers to more easily create games which run on the Microsoft Windows and Xbox 360 platforms. It is being designed with a unified set of class libraries which will allow for maximal re-use of code and assets across target platforms. A custom version of the Common Language Runtime is being built to enable the execution of managed code on an Xbox 360, and at GDC the XNA team showcased some exciting demonstrations of games which were built on an early version of this technology.

there's more on the page...

just a few interesting things i've run across... i'm sure there's more...

--Mike

Can you do multi-threading with BMax?

I think someone wrote a module to do multithreading, one way or another.



Stop bickering about which language is better -- they're all totally different, and all suited for different minds. Sort of like cars.

Remind me what BlitzMax has over C#?
Skidracer?

are there any good 2D engines (and tcp/udp engines) for c#? If so I might have to take another look at it. When I first looked at it for gaming I was pretty disappointed at the available graphics engines. I'm just not interested in reinventing the wheel in that regard.

Kanati

Stop bickering about which language is better -- they're all totally different, and all suited for different minds. Sort of like cars.


I think you have the wrong thread man. This thread ( perhaps surprisingly ) contains no bickering. It's been a good productive discussion.

Skidracer?





are there any good 2D engines (and tcp/udp engines) for c#?


Yep. Orca's writing one. Not sure if it's done or just close to done, but he can confirm that.


that's interesting...seeing as they all compile to the same clr...



That's a good point. One of the main advantages of the .Net framework is it doesn't matter what language you use because it will all become "common language" (or MSIL as I believe Microsoft calls it)

For that matter, perhaps a BlitzMax CLR compiler would be a good suggestion. A lot of advantages to it, including the creation of components usable by C# or VB. Provided it didn't go the n-gen route, a CLR BlitzMax application would easily survive a migration to a 64-bit CPU without re-writing the compiler.

A BMax to VS C#/C++ converter would probably accomplish this sort of thing just as easily. However, it would be a whole lot better and optimized if the BMax compiler gave the Windows platform the option of compiling to the CLR rather than creating native code. With projects like Mono on the Linux/Apple side making steady progress toward having a .Net Virtual Machine, this would make a lot of sense in the future.

It would also provide an easy hook into developing software for mobile/Windows CE without having to compile for each mobile CPU.

And as mentioned earlier.. it would have the potential of XBOX360.

Kanati,
There's a list of C# game engines at http://thezbuffer.com/categories/engines.aspx. I think there are 2 2D only engines listed there

Skidracer?


You say that like it's a good thing O_o

whoo ist diis person... diis Hams Bakunsky...
somebotty check to maake sure hees papaas are in ordaar...

:)

--Mike

Orca, tell me what's so good about Enumerations, I've never really understood them. :)

are there any good 2D engines (and tcp/udp engines) for c#?


Check out the FlatRedBall engine.... : http://www.flatredball.com/

Orca, tell me what's so good about Enumerations, I've never really understood them. :)


One example from my TV3D wrapper, which would benefit enormously from them..

Suppose you have a big library which has a lot of constants. With Enums you can force people to use a valid constant for every function/method because the compiler won't let you provide a constant of any other type.

For example, if I have a set of Enumerated types for the days of the week and another set for the months of the year, in BMax, you could pass a month of the year to a function asking for the days of the month. And since September is 9, boom, crash.. error. With enumerated types, the compiler wouldn't let you pass a month of the year if it was supposed to be a day of the week. So no crash.

You say that like it's a good thing O_o
It is!

The only downside I can see with C# and .Net is Microsoft propriety issues, and the price.

The only downside I can see with C# and .Net is Microsoft propriety issues, and the price.


Price? Of what, specifically?

BMax + GUI is $105 and we still don't have an engine so that's about the same price as VC# Express if you pay for it (I don't know anyone who didn't take advantage of the offer to get it free -- I think that offer is still open as well). If you didn't/don't pay for it, then it's $0 out compared to the $105. What you get is a very stable cross-platform and cross-language CLR and API with a very good interface to DirectX.

Frankly, I think if anything C#/.NET is cheaper.

AND well documented...

Orca's writing one. Not sure if it's done or just close to done, but he can confirm that.


Thanks Gabriel :)

Yes I do have a 2D game engine called Supergrafx. Its in a usable state, and I think its very good at what it does . I plan on starting a game with it as soon as possible, but the main thing is getting it ready for public release. Right now it just sits, collecting dust while I build the website. It still desperately needs a user manual, and examples. It also needs testing.

I plan on releasing 2 versions, one for commercial games, and another for freeware titles. Freeware version, will amazingly enough, be free ;) Can't give a release date though... just sometime in the very near future.

what's so good about Enumerations

Well actually, I'd just be happy if blitz even had a way to enumerate over constants. Thats one thing that really annoys me. Having a long list of constants and manually setting all their values.

And then if you decide to insert or remove one, you may have to adjust all the values around. Its just such a trivial thing to add, and yet its still not in blitz.

In .NET, the enumeration's go beyond all that. Like gabe said, they're an actual type, which cuts down on errors, and "magic numbers" floating around in your code. And if you use the Flags attribute, you can make it so an enumeration's values can be OR'd together. Its Like in blitz where you add the flags together in LoadTexture(). You can set that up *automatically* for your own enums..

[Flags]
enum Power
{
	Speed, 
	Strength, 
	SteelSkin,
	Luck 
}

player1.Powers = Power.Speed | Power.Luck;


The only downside I can see with C# and .Net is Microsoft propriety issues, and the price.


If you decide not to get the microsoft ide's, the .NET sdk is free. And if you just have the framework installed, you have the compilers already. Just none of the tools or docs.

And of course, mono is free and available for a bunch of platforms( http://www.go-mono.com ).

perhaps a BlitzMax CLR compiler would be a good suggestion


This might be alot easier than you'd expect. The CodeDom namespace basically fast forwards creating compilers for .NET. If someone were to spend a little time with it...could be interesting. I contemplated converting blitz 2d/plus, but I have too much on my plate right now.

Frankly, I think if anything C#/.NET is cheaper.
I guess you're too young to have witnessed Microsofts marketing strategy in effect.

AND well documented...
I hope you're not thinking of MSDN. The only good thing about MSDN is that it's indexed by Google. Plus 99 out of 100 times, you're going to find better documentation, articles and examples on http://www.csharpcorner.com/ or http://www.codeproject.com/

And of course, mono is free and available for a bunch of platforms
It's also no where near as complete as .Net.

BMax is like a pair of comfy slippers, C# is a like a pair of strappy stilettos.

BMax is like a pair of comfy slippers, C# is a like a pair of strappy stilettos.


They make me feel sexy. The stilettos, that is.


This might be alot easier than you'd expect. The CodeDom namespace basically fast forwards creating compilers for .NET. If someone were to spend a little time with it...could be interesting. I contemplated converting blitz 2d/plus, but I have too much on my plate right now.



I don't have a lot of experience in that aspect of .Net, but it doesn't surprise me. Things get easier all the time in .Net with every release they do. I haven't written a compiler since college, but it was always a favorite subject.

Thanks for the tip as to where I can start learning. :)

They make me feel sexy. The stilettos, that is.

hhhhmmmmmm...

ooohhhhhh.... oOOHHH!H!!!!!!

MY EYES!!!! MY EYES!!!!! OUTTA MY HEAD!!!!

IMAGE OF HAM IN DRAG, WEARING STILLETTOS BE GONE!!!!!!


--Mike