ID:182058
 
I'm "really good" I dare say at programming in byond. But that is it. For a while now I have been trying to find the resources I need to step it up to another level and make a game I can actually market and make a little bit of first time money with. My expectations are realistic so I don't need any lectures on that with people thinking I'm just some ignorant person who doesn't know that making a game is hard. I don't care that its hard.

Anyway. I hate C++. I hate the syntax. Its stupid. It annoys me. I don't want to deal with it and its not centered on game creation but rather its centered on being able to do anything. So because of that there is so much uneccessary things about the language and I don't know what is and is not relevant to game creation and...Nobody cares so why continue. Everything about C++ annoys me. The way it looks, the unecessary characters that the syntax forces on you. Everything. It's like, why do I have to put a ";" after each line break, if I put a damn line break it should just KNOW there is a freaking line break. Same for those "{"'s and all that crap. And I have to TELL it when a function is done? Why can't it freaking tell the function is done on its own? Obviously if I left it and went to the next one then the previous one is done. Ugh...

Point is, I want to know if there is anything geared more towards specifically making games. With all the "necessary" flexibility to make a indie game that is actually of quality and I can market it on a website or something. It needs to be able to make any kind of 2d game, and do it well. Yes, the game I am making will be a 2d top-down multiplayer game.

In a nutshell: Please tell me anything that will help me in my quest to make a -quality- 2d topdown multiplayer online game that can be marketed even on a small scale. Byond is quality and I love it, but its not flexible enough and it is unmarketable. Those are two things I just cannot have anymore.

My goal with this is not only to make a quality 2d game, but also make money because of it. Its half and half. But one cannot happen without the other.

It can even be in C++ if I have to, but the tediousness of filtering through what is and is not relevant when looking for resources and tutorials is so...frustrating. If I just had all the resources I could easily put them into action, but so far there is no all-encompassing solution I have found, not by far.
C++ is hard, but you can't expect to make your own multiplayer game over night.

You could check out blitz3D/blitzmax, but you will have to write your own network code.
http://www.blitzbasic.com/Products/_index_.php

C# is managed so it is easier to learn then C++. You can use XNA with it so you don't have to do all the hard stuff.
http://creators.xna.com/en-US/
Nubtard wrote:
[...] It's like, why do I have to put a ";" after each line break, if I put a damn line break it should just KNOW there is a freaking line break.

You aren't signaling that there is a line break. You're noting the end of a code statement.

BYOND has held your hand too much, frankly. What is so hard about adding {} around your code blocks? You're whining about silly things when it comes to using C++. :/

A lot of other languages don't follow BYONDs 'correct' indentation syntax. You've become too dependant on the compiler making you organize your code.
If you don't like the braces-and-semicolons-style of code organization, you'd better get used to it; it is extremely common, and one of the trademarks of the C-family of programming language, which is pretty large (C, C++, D, Java, and, to some extent, JavaScript and PHP, along with a lot more). As well, a lot of the things in C++ are logical. You just don't know why because you're ignorant of the reasons. That knowledge comes with time and experience.

As well, since I'm nearly certain that I didn't somehow close out my tab before I posted this and that it was deleted, I'd like to point out "ignorant", the only possible reason for this to get deleted, is hardly a derogatory-use only term and that that mod needs to expand the meanings of words in their vocabulary. If I didn't post this then delete the post or this section, or reply and make an example of me, or ignore it all together. If I did post it, then I'm sure you won't be fond of me reposting, even if your only possible reason was bogus.
In response to Popisfizzy
Popisfizzy wrote:
As well, since I'm nearly certain that I didn't somehow close out my tab before I posted this and that it was deleted

Then you'd be wrong. There was no post deletion of yours in this thread that I can find. So your little side rant there is completely moot.

--

Original Poster:
DM Syntax isn't all that different from C++, you know.
mob {
verb {
Test1() {
world << "Valid";
}
}
}

//Is just as valid as

mob
verb
Test2()
world << "Valid"

//Or even

mob
verb
Test3() {
world << "Valid";
}


Use the same syntax in DM if it makes the transition easier. Or learn a simpler language with that syntax, like PHP. Either way, the transition isn't as hard as you're making out.
In response to Tiberath
Something about using brackets in DM that makes it feel out of place to me and most people don't use brackets either, so being on a team would be kinda wierd. It could just be me though.
Python is a little closer syntactically and conceptually to DM than C++ is. You may find it easier to pick up, and there are libraries like pygame which will handle a lot of stuff useful for game writing (sprites, key/mouse input, etc.) along with stuff you can't do easily or at all in DM.

The problem though, and this is true of any general-purpose language, is that networking for multi-player games will be much harder. In DM, you have no need to think about the networking model, you write the server and just about everything client-side is handled automatically. This makes it easy to use but inflexible.

For other languages, you will almost certainly need to write a separate client and server program (or some other similar model) and design a protocol of exactly what data is transmitted between them under what conditions and events. This is naturally much more flexible than BYOND's system, but also much harder.

There are libraries that can handle some of the networking for you (e.g. Raknet for C++), but even so it's not easy.

Other things to think about include player matching and server discovery - again, things that BYOND does automatically for you (the hub system) but need explicit implementation in other languages.
Nubtard wrote:
I hate C++. I hate the syntax. Its stupid. It annoys me.
Everything about C++ annoys me. The way it looks, the unecessary characters that the syntax forces on you. Everything. It's like, why do I have to put a ";" after each line break, if I put a damn line break it should just KNOW there is a freaking line break. Same for those "{"'s and all that crap. And I have to TELL it when a function is done? Why can't it freaking tell the function is done on its own? Obviously if I left it and went to the next one then the previous one is done. Ugh...

Stop programming? If you're going to be so anti-C-syntax, you might as well; you have very few options outside of the C-family of languages, and even fewer of those are marketable, which seems to be the reason why you wanted to "step up" in the first place. My recommendation for you? A or B, your choice.

I don't want to deal with it and its not centered on game creation but rather its centered on being able to do anything.

It's not centered on game creation because C++ isn't a game creation language. You're writing a program that has to be executed by your operating system and I don't know of many people with operating systems that are entirely dedicated to running games on their computers. BYOND is a game creation language, but because it handles all of your graphics and networking for you (so that it can be centered on game creation like you want), it requires you to run another program to do all of that stuff, and that's the specific reason that you find BYOND games unmarketable.

So because of that there is so much uneccessary things about the language and I don't know what is and is not relevant to game creation

This is entirely ignorance on your part, on the basis that the BYOND suite has babied you too much. The thing about game programming is that everything is relevant (or is potentially so). There's a good reason why the people doing this for a living tend to make upwards of $60k salaries.

In a nutshell: Please tell me anything that will help me in my quest to make a -quality- 2d topdown multiplayer online game that can be marketed even on a small scale.

Anything? Stop complaining about dumb things like syntax. Don't be ignorant as to what really goes into making games. You said you don't care that it's hard, yet 2/3 of your post complained about that exactly.

If you really want to try for this, invest in some books and learn the old-fashioned way. Stray away from looking for "free online tutorials" and bite the bullet; if you're serious you shouldn't have a problem here.
In response to Kuraudo
To draw an important point about C++ compared to DM. DM is a language aimed at simple and rapid 2D networked gaming applications development for (primarily) Windows Operating Systems. C++ is a language aimed at ... well, it isn't even as specific as "applications". You can make Operating Systems out of C++, firmware of household appliances, WoW servers, websites, bank clearing systems ... you get the idea.

The impressive thing about C++ is it can do all of that and yet ISO C++ doesn't even provide lists. C++ syntax should be the least of your problems once you get into it. You'll have a small army of OS-like considerations to take care of, do you statically allocate or dynamically? Are you freeing up dynamic memory when you're done? Which is more appropriate for your application, threading or process spawning? How about shared memory? Are you using mutexes properly to avoid live-lock/dead-lock etc? Should you layer a network protocol on top of UDP, or just use TCP? The list of considerations goes on.

If you want to be good with C++, I'd like to extend Kuraudo's recommendation a bit and suggest you pick up books for multi-threaded programming and networking principals while you're at it, seen as they'll be indispensable for anything more than toy programs.
Yes it's true, it's really complicated. Also I could suggest to use VC++ as it had DirectX support. You can also try checking www.planet-source-code.com website for examples

Furthermore, it's WAY MORE complicated than BYOND, example:
spriteBatch.DrawString(font, text, new Vector2(position.X - (int)textSize.X / 2,position.Y - (int)textSize.Y / 2), color, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f - position.Y / 720f);
//That's one line taken from my project
If you like BYOND's syntax but need more power or flexibility, I suggest taking a look at the Cobra programming language (http://cobra-language.com/).
In response to Stephen001
A C++ book I'd like to recommend is C++ For Game Programmers. It's a very nuts-and-bolts book which starts with Inheritance and covers just about every totally general aspect of game programming - memory management, STL structures, exceptions, RTTI, scripting languages, object management etc. There's no mention of graphics, AI (apart from some very basic stuff on pathfinding but this is more focused on algorithms in general then anything specific) or networking, but I still wouldn't dream of starting a non-trivial game project in C++ without flicking through it.
In response to Hazman
Hazman wrote:
A C++ book I'd like to recommend is C++ For Game Programmers. It's a very nuts-and-bolts book which starts with Inheritance and covers just about every totally general aspect of game programming - memory management, STL structures, exceptions, RTTI, scripting languages, object management etc. There's no mention of graphics, AI (apart from some very basic stuff on pathfinding but this is more focused on algorithms in general then anything specific) or networking, but I still wouldn't dream of starting a non-trivial game project in C++ without flicking through it.

I don't know, depends how you define "non-trivial". You can still make some alright money with a game many would consider trivial. Mine is going to be somewhere in between.
In response to Soldierman
Soldierman wrote:
Something about using brackets in DM that makes it feel out of place to me and most people don't use brackets either, so being on a team would be kinda wierd. It could just be me though.

Yea. Professionals say there is a point to them. And they are probably right. But that doesn't have anything to do with the fact that they annoy me and I dislike them in a way I can't even explain.

And thanks for all the resources that have been posted. I get annoyed extremely easily when I can't find something on the first page of google and have to sift through a lot of useless crap. Usually I'm using the wrong terminology but don't want to take the time to fix it. I won't bother explaining why because it doesn't matter.

But thanks for the resources.
I don't know who mentioned it, but XNA -sounds- a lot like what I am leaning towards. Being able to market the games on Xbox Live sounds nice. The only way I wouldn't do that is if it had to be exclusive to them, since I want to market it on it's own website as well.

Wikipedia says it has a superb toolset and is quite efficient so, whatever, sounds alright basically.

I guess I'll be checking that out for a while. I just can't spare 200$+ to buy all the crap I am going to need according to Wikipedia in order to use XNA. I only make about 250$ a week in the first place and most of it is spent before its made, not by choice of course.

We'll see. Maybe, maybe I can recruit a few college people who have similar goals, to make a small time game with no strings attached, and promise them money only if money is made. And that would mean that they won't get anything unless they help the game succeed on any level. If that doesn't work out, screw it, my dreams are 95% shattered already so if they don't care I don't care.
In response to Ripiz
Ripiz wrote:
Furthermore, it's WAY MORE complicated than BYOND, example:
> spriteBatch.DrawString(font, text, new Vector2(position.X - (int)textSize.X / 2,position.Y - (int)textSize.Y / 2), 
color, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f - position.Y / 720f);
> //That's one line taken from my project


No, it's not way more complicated; you just wanted to make it unnecessarily complicated. Good programming conventions typically frown upon nesting things such as new calls within functions, and trying to do things in one line is usually both uglier and more complicated than doing it in multiple:
Vector2 *pVec = new Vector2(position.X-(int)textSize.X/2, position.Y-(int)textSize.Y/2);
spriteBatch.DrawString(font, text, pVec, color, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f-position.Y/720f);

After you ration it out like this, the only thing that makes it seem any bit complicated is the large number of parameters belonging to DrawString(), but those are needed so the function knows exactly how and where it needs to be drawn. Considered in isolation, I'd say it's even less complicated than if you were to try and accomplish this same DrawString() call in DM.
In response to Kuraudo
Nope, in DM proc call would be much shorter
In response to Ripiz
Call me a skeptic, but I don't see how you could shorten that any further without removing required information...
In response to Ripiz
Ripiz wrote:
Nope, in DM proc call would be much shorter

lol? Is that a joke?
In response to Nubtard
Nubtard wrote:
Usually I'm using the wrong terminology but don't want to take the time to fix it.

You're never going to get anywhere in programming with an attitude like that.

Nubtard wrote:
I guess I'll be checking that out for a while. I just can't spare 200$+ to buy all the crap I am going to need according to Wikipedia in order to use XNA.

All you need to use XNA is C# Express (Free) and the XNA Framework (also free). It'll only cost you money if you're going to put games on the 360.
Page: 1 2 3 4