2015-01-07 20:35:46

Well said Camlorn.  +1

- Aprone
Please try out my games and programs:
Aprone's software

2015-01-07 21:06:13

No one is downtalking you here. What you're hearing is experience speaking. Camlorn, Aprone and many others on this thread are capable programmers, who went throuhg that very pain they're describing. Hell, even I'm a game developer, and I wouldn't call myself capable yet, mainly because I'm still in a big learning process. And I say this after having released several top-down shooters, a multiplayer FPS PVP style shooter in the likes of Call of Duty, a Slender clone, etc etc.
This stuff does not simply come out of nowhere and you keep learning with everything you do. Even I look back at some of my projects now and immediately think of rewriting large portions of it, simply because I've found a faster, more effitient, less painful way of achieving something I did with lines of code that I probably didn't even understand at the time, but simply used because they worked. And this is not what you want in a huge project like you're trying to achieve. You want to be able to make changes effitiently, you want to understand what you were doing later, which also comes down to good code commenting, all that.
We're not even telling you that you shouldn't. We're all glad to help you, should you have any problems with your code. We're just telling you that starting out this big is probably only going to get you frustrated in the long run and are trying to save you an incomplete project, simply because you've given up. Because deep down in our hearts we want to play and have a game like that. And don't want to lose our chance of having it. tongue

We're not trying to be insulting. We're just being good people and giving you advice. As said. We are programmers, we have or are still going through what's been described above. If you'd like to ignore our little calls of sanity, that's up to you, and no one will point fingers, we won't even be mad. But you will remember what we said during the process. Time and time again. And possibly wished you'd have listened. Don't bite off more than you can chew, especially if you don't know how big the piece is.

--
Talon
Wanna play my Games? Listen to my Music? Follow me on Twitter, and say hi~
Code is poetry.

2015-01-07 23:31:43

Heh.  The worst programmer I know is myself.  Camlorn_audio has the second-worst piece of code I've ever written in it.  I do not talk about the Camlorn_audio code.
In fact, Camlorn_audio is a prime example.  I started out to solve the 3D audio problem.  Unfortunately, I didn't have anyone who was able to say that I didn't understand the problem I was trying to solve.  Net result? 6 months down the road it's basically dead because it's inflexible, incapable, crashing all the time, and unmaintainable.  I took the "lessons" from it and applied them to Libaudioverse; for the most part they were good, but one of them was actually a really bad idea disguised as a lesson, again wasting a month wherein I basically went through the project line-by-line and rewrote.
Camlorn_audio actually contains the second-worst piece of code I've ever written.  The worst piece of code is unpublished, was written in 4 hours, and let's just say that it shows how well I know C++ and not mention the fact that I need to look at least one thing up when I try to read it again.

My Blog
Twitter: @ajhicks1992

2015-01-08 00:36:35

6 months sounds about right. I started in earnest in December, and just copy-editing buttons and alerts got me a quiz I will not link. Three months later, I managed this (Don't look at the source. Just don't.). Three months yet, to this, which is still flawed but probably the best thing to come out of that year (I kept updating it every now and then for some time, anyway. It really could use another to wrap things up.).
I kept taking classes, though, and accordingly got better.

But, no, let me contradict some of the talk of complex math and such.
You need more math than the average Joe, especially if you plan on adding graphics, but you'd be surprised what you can get away with.
It helps to know calculus, but trig is a must if you want anything more complicated than m=(0|1|-1|NaN), and let's not get started on physics and graphics.

But you can do surprisingly much with surprisingly little.
Understanding the logic and flow of a program is where the real power lies, and I think that has more in common with learning languages than might be obvious at first glance. もっとがんばれ!

But I still agree that diving into the project you have the most stake in first is dangerous at best. Experiment with something smaller until you can get it to do what you want. My first half-try wasn't the game for my book, but a silly multiple choice quiz about it. (I didn't start on the game proper for a year and some change after getting into programming. And now I want to revise them both.)

You're moving fast. You have elsewhere demonstrated that you're picking this stuff up at breakneck pace. You might even have something half as epic as you're aiming for within the year--Heck, I did. But expect it to be a bumpy road.
(Also I only ever asked for help in person; I reserved the internet for code samples. Samples, more than instructions. If ever I couldn't disentangle the meaning of a sample, then I'd ask a professor. In the absence of a professor, I'd type my question into Google, and almost always find a public discussion where someone else had asked. The answers weren't always satisfying, but even those that were downright wrong often pointed somewhere useful. But engaging directly? Haha, no. This might have something to do with why I am not rich, actually... but the atmosphere almost everywhere is not especially inviting. It's different, here, because Aprone is jolly (or was before our worst members beat it out of him) and Camlorn actually does things while most of us sit around whining about it. And it's mostly a community that plays games, rather than just a community of coders.)


Really, though: Keep it up and good luck! We need more people like you, and we need them to succeed.

看過來!
"If you want utopia but reality gives you Lovecraft, you don't give up, you carve your utopia out of the corpses of dead gods."
MaxAngor wrote:
    George... Don't do that.

2015-01-08 05:12:41

Also, getting your project off the ground and keeping it going will most likely be your biggest struggle, Your going to need to sollidly grasp the coding logic to make this complex idea of yours turn in to an actual game that you and your audience can play. Please don't take this the wrong way, because this most likely doesn't apply to you but i feel the need to point out the observation that it seems like people want other's to hold there hand when programming that apparent block buster of a game. The truth is, that unless you have a team behind you, your on your own, friend. Of course if you have the coding skills to back up your ideas, then this won't even be an issue. Just be aware that everyone has different answers to coding language and style, and sharing code can at times be problamatic, just because of this difference of viewpoints. I guess my advice, good or bad is simply, get cracking! Make that game, and blow us away with how great it is. I think the market could use more than one complex rpg or similar game right now. Good luck and welcome to the forum.

2015-01-08 16:10:51

All right. After some consideration, I've realised what I was doing wrong.

I was basically expecting my game-building exploits to begin at once, as soon as I had worked out all the features of the engine I needed to do what I wanted. With my screen-reader and audio editor, both free programs, all I had to do was read the user manual and I was good to go. If I got stuck, I could just refer back to the guide.

This is different, as you've all been trying to tell me. I'm the one making the rules with every thing I create, and it's not as easy as 1, 2, 3, go. I can't expect myself to take the final exams of a course I've barely started.

That said, I've already started designing a version of Tic-tac-toe in my head (which I should really stop doing because I'm supposed to be having a break) and I begin to see your point. I know what functions I'm going to need, but how exactly to code them all currently escapes me. But to be fair, it's nearly 1 in the morning where I am and I haven't looked at the tutorial since I got myself into such a curfluffle.

It's highly possible I might upgrade to another program in the future, one that is compatible with graphics, or at least more so than BGT is, but I hope fervently that such a choice won't put me back at square 1 after I've learned how to use BGT. The choice I made was primarily based on finances, as I said in my first post, and I was excited that it could do so much.

...I wish there was a PM feature over on the Blastbay forums. Asking all these questions most of you already know the answers to on a public forum is kind of awkward.

2015-01-08 17:10:17

Regarding BGT and other languages, your knowledge (mostly) transfers.  You'd have to learn other libraries, but they all have manuals, and it's more a matter of learning how the library works, not how the language works.  Once you can go "I need these functions and they should be coded like that", you've passed the big first hurdle; most languages have at least an 80% similarity to BGT.  You can expect if, functions, classes, inheritance and polymorphism in basically every language these days.  If you don't know what the last two do yet, I promise you will see them both very shortly.
The thing you need to learn is how to make those functions in the first place.  It is my opinion that you can do this in any language that provides classes (in mainstream sighted land, this is everything but C).  You know what pieces you need for tic-tac-toe, and that's great-except that you'll probably turn around a few times and go "No, actually, this instead."  We call this refactoring.  A point comes where you're writing the project and you're not refactoring and rearranging code all the time; this is a good sign that you're ready for something bigger.  It should also be noted that you never really stop refactoring, it just gets rarer and becomes a much bigger and more time-consuming deal when you have to do it.  The only saving grace here is that you ultimately end up spending less time overall.  Even though that big refactor takes 2 or 3 days every couple months, it's better than all those littler 1-hour refactors you were doing every day.
As for audio editors, that doesn't change.  All the external tools that you didn't write yourself can either be the same in the long run, or you can write importers or exporters for their formats.  This may sound hard, but isn't in most cases once you're at the point where it actually matters.
And there is nothing wrong with these questions, not at all.

My Blog
Twitter: @ajhicks1992

2015-01-09 18:03:19

I did understand pretty much all of those terms—as I said, I've read the language tutorial through about three times in full as of right now. It's a relief to know I'll just have to adjust a little to the way another program would work to get on with the project. smile

Still taking a break from all this. Just thinking about it right now is making my head hurt.

2015-01-18 14:24:13 (edited by The Imaginatrix 2015-01-18 15:02:00)

Okay, so I found this site, and there are free programming courses on it. I initially got all excited when I saw the C programming courses, but then I reread Cam's last post. Is there anything on here that it would be beneficial for me to learn on my path to becoming a capable game programmer? If all the game-building tools have a similar language structure, there must be some course out there I can use to get the necessary skills down before I start really messing with BGT coding. My complete lack of programming experience is getting me nowhere fast and I feel a proper course would help me learn  things at a reasonable pace without laying on the pressure.

If this site doesn't have what I'm after, can anyone recommend somewhere that does? I'd really appreciate it.

2015-01-18 15:14:56 (edited by frastlin 2015-01-18 15:29:10)

Hello,
Go ahead and and go through
Learn Python the Hard Way
and by the time you get done with that you can either choose to go into BGT or use a python package that is either the equivalent or better than BGT.
I could not understand BGT worth anything, but going through the above really helped me get the basics of what terminology was used where.
Also, python does have several libraries that render graphics and a lot more documentation than BGT could ever have. (Well you are really comparing apples and oranges as python is a full-blown programming language and BGT is not).
But if you are having a problem you can type in google:
what is a function in python
and you get about 6 different guides on the first page. More complex questions you will get stackover flow answers.

2015-01-18 15:32:41

I don't like the indenting in python. Is it required? Or can you use braces like bgt.

2015-01-18 15:53:58

Hello, use tab and it is just fine.
it would be like:
def func():
tab print("Hello world")

The above is what you will here when you arrow over it.
if you wish to replace examples with tab, select them and replace all 4 spaces with \t which is a tab sign.
I use
EdSharp
which has lovely features for doing complex replacement like this, navigation, quoting and unquoting many lines, deleting one line, keeping the same level of indentation when hitting enter and whatnot.

2015-01-18 17:23:23 (edited by camlorn 2015-01-18 17:24:22)

Python requires indentation.  It seems to be a growing trend.  The tools like Pybrace break horribly as soon as you try to do anything marginally complex.  You should be indenting, always. In any language.  It prevents so many problems with brace matching and keeps sighted people from laughing at you.  In addition, most screen readers do a really good job with it nowadays.  I'm also against making the indentation "conform" to your scheme; should you ever enter the real world of programming with others, this is a very very bad habit to have.
Python isn't a bad choice in terms of finding tutorials.  Googling Python Game Programming will bring up more things than you could ever read through.  I don't have a specific one I'm afraid-it's been too long since I've needed anything at this level of programming.
C and C++ aren't good choices.  C doesn't have a lot of modern features and C++ is very, very complicated.  You can use C++, but you need to learn how to use it first-in the case of C++ you have to add knowing which features of the language you shouldn't mix together to the list of things to know.  Most languages don't have that problem, but C++ is 30 years of "how do we abstract this without making it slower?" and the result is something wherein everyone uses only part of the language, but everyone uses a different part.  You can technically do object oriented programming in C, actually, but it's very definitely not for the faint of heart and very definitely not fun (also you have to know some obscure things about structs).  That said, C++ probably beats everything for finding game programming info, simply because the sighted programmers working on the very biggest 3D titles for consoles don't have a choice.
I'd not suggest making a game in Java; I don't like the language but it's well enough if that's your cup of tea (I find that its philosophy of knowing better than the programmer is restrictive).  The real problem with Java or any of the JVM languages is that you need the JVM, which is a 200 MB or so package that not all of us have.  That said, new programmers love it and universities loved it about 5 years ago (they all seem to be moving off it now), so you can find lots and lots of info along these lines.
You have two choices.  One is to leave BGT for one of the mainstream languages.  If you do so, which language you pick determines which language you put next to game programming tutorials in your Google searches.  Your other option is to port back to BGT, in which case it doesn't really matter because you're in it for figuring out how games look and have to translate all the concepts anyway.  Leaving BGT adds a lot of up-front work but is probably something you'll do eventually, especially if you want to make something like a first-person shooter.  The only advantage to BGT that I see is that you can learn programing by learning game programming, something which is harder elsewhere.  Also, as came up in another thread, it appears having scripting is difficult in BGT; you have to roll your own language as far as I know.

My Blog
Twitter: @ajhicks1992

2015-01-18 18:11:57

I am working on a newbie game tutorial in python that I will be releasing soon. But meanwhile I would suggest the learn python the hard way.

2015-01-18 18:23:58

You know what's weird?
I started out here: Lissa Explains it all. Yes, it's mostly focused on HTML (and pre Web2.0, at that), or at least it was the last time I was there... ur... years and years ago. The tiny, near useless Javascript examples were a minor but welcome introduction to basic scripting.
I then started looking for more complex examples, and (again being way before stack overflow) my main resource became The Java Script Source. At the time, the only real game they had was Falcon Fighter, a dreadfully complex beast of a script that I couldn't even test because it's entirely image-based. I then started taking Java classes (and Falcon Fighter remained pretty impenetrable for about a year because it was still the most advanced thing I'd ever seen. The solution was to write something more complicated.)

Looking at the backup of my Jumpdrive from those first classes, I have 5 programs, one of which I wrote to try and fix the image map on my website (It didn't work so well). The others are:
Diamond: it takes a number from the user, then prints a user-specified symbol on the screen several times, so as to form the shape of a diamond. This is a more advanced version of doing the same thing with a square (which is mostly just a test to see if you understand loops).
FileIODemo: Exactly what it says: reads from one file, writes to another. I've been keeping this around as a reference because I really don't like checking the Javadocs. BGT could really use a section on this in the tutorials, so that people get the idea in their heads for saving/loading game data.
TTT: Tic-Tac-Toe. I'm trying and failing to remember what, if any, array-based assignments came before this.
Wordcount: Read from a file, return the number of words therein. A bit of warning: it works best with plaintext (.txt). Even something as simple as RTF adds formatting information. Don't even get me started on docX. Anyway, the point of this assignment is an introduction to manipulating strings, which is terribly useful.

Earlier assignments for which I do not have backups are Hello World (literally every introductory programming tutorial ever should have one of these somewhere near the beginning), Mile-per-gallon (take numbers from the user and do arithmetic with them), and the afore-mentioned StarBox (take a number and draw a square made of asterisks, user-number wide and high).

I'll also note that these assignments and the two websites and a little bit of talking to teachers was enough to make my terrible ancient games, but it rather helps that I had been trying various other unintuitive means of making games before that, including PowerPoint. (I had a complete-ish PowerPoint game on my website for a short while, but I took it down because it was huge and I realized that getting it to work that way would be difficult forever. By "huge" I mean ~70MB. This was way before Swamp.). I say it helps, because I was actively looking for tricks to get games out of whatever resource I could. In my second semester of programming classes, I wound up trying to talk someone a semester behind me through how the little he'd already learned could be used to make text games (variables, loops, ifs, text input and text output).

(For the curious: PowerPoint has loads of nonlinear interaction options. I did most of my work with it on Jaws 3.7; as of Jaws 4, the virtual viewer kinda broke most of what I was using, so I actively scorned upgrading Jaws until I got good enough at programming to make a more intuitive interface. Hidden slides, slide numbers, on-slide links, mouse over/mouse click effects... custom shows are an option, too, but the one time I tried using them turned into a huge mess, which is kinda upsetting, since that case was clearly better than the others. ... That case was the last PPT game I made, because the game I had in mind felt appropriate as a point-and-click. Oh, and Jaws reported object position/overlap, and a little trig and getting someone to clerify ambiguous autoshapes meant I could make simple graphics with PowerPoint. Simple!=good. I tried making Ninja Sprites. I might be able to make screen shots if one of our sighted users wants to confirm how awful they are.)

看過來!
"If you want utopia but reality gives you Lovecraft, you don't give up, you carve your utopia out of the corpses of dead gods."
MaxAngor wrote:
    George... Don't do that.

2015-01-19 09:40:40

...My thread just got hijacked and now I don't know who's responding to me.

What kind of programming tutorials/courses should I look for if not C, which has been described as unsuitable?

2015-01-19 10:40:54 (edited by frastlin 2015-01-19 10:46:42)

You will get a million answers to that one question, so that is what has happened here.
I suggest python, CAE_Jones said Javascript.
They are both very similar and one who is with one doesn't really like the other.
But Javascript can be used with webpages and that is its major calling-card. Python is much shorter to write and has the ability to run servers.
But you are not looking at web development, so me, being a python person, would say python! I gave my tutorial up above on post 35.

BTW, C is not unsuitable, you just won't ever get anything done in C. Most programming languages are a way to make C more usable.
Are you sure you didn't mean C Sharp? A gaming tutorial in CSharp or C# is much different. C# is like python, but from the functional programming side. You don't know what that means, but at this point I'm sure you could start with either and do the same. I did, however, give you a python tutorial.

2015-01-19 15:06:29 (edited by The Imaginatrix 2015-01-19 15:49:31)

...*facepalms*
I'm a derp. I didn't see the link as anything but the bottom of the post, and didn't read your whole post as a result because I scrolled down after NVDA said "Link". Forgive me!

Edit: I've read the Preface and Intro and this looks pretty promising! It does require a bit of setup but I'm hoping this helps me out.

And I look forward to your tutorial! I'm sure it will be very useful. I wouldn't want to abandon BGT just yet after already learning so much about it, but we'll see how I go. smile

2015-01-19 18:00:22

As camlern said, what you learn by programming in bgt will help you even when you start coding in python or another language. Bgt is a good starting point, but once you can get into bigger and better things you will be glad of having a solid base like bgt to build up your knowledge on..

I like to sleep, Sleep is good,
This is how I do it: Lie on a nice warm cozy bed, and dream dreams about how to rule the world!
Follow @TheGreatAthlon5 on twitter for humorous facts and game updates!
If you like my posts, thumb me up!

2015-01-19 18:18:48

C# is not functional.  C# is basically Java plus a bunch of stuff that makes it actually kind of pleasant and minus the ability to run on anything that's not Windows. C# is actually not a horrible choice either, given that XNA was popular for a while.  The net result is that C# has a lot of tutorials aimed at new sighted game programmers, too.
Javascript can run servers and is actually likely to be more popular in that space (see node.js, which is a big deal right now).  The problem with javascript is sound.  Since your client basically only runs in the browser and since Webaudio is a moving specification (and that's putting it very, very kindly as far as I can tell), you will probably be very frustrated by it.  It doesn't matter to you now, but the one notable thing about javasccript is that it can make a really, really nice embedded scripting language for all the stuff you don't want to hard-code into the engine itself.  For any game with even marginally complex levels, the ability to trigger scripts and edit them in your level editor becomes essential.
I'm not saying you have to leave BGT, just that if you stick with programming you will.  I can do things like simulate each individual bullet with a physics library, whereas BGT people have to write the entire physics system themselves.  Same with scripting.  For something turn-based and tile-based it's fine, but there's enough code saving for anything more complicated that the 100 lines or so up front to get the window open and have a main loop in Python or whatever is very, very  worth it.  So it really depends on what kind of game you're going for.

My Blog
Twitter: @ajhicks1992

2015-01-20 07:04:41 (edited by The Imaginatrix 2015-01-20 10:00:57)

That...actually sounds like a good thing. smile I can handle the quirks like indentation—once I get into the habit I won't even think about it. I'll probably keep messing around with BGT on the side, though. The adventure game I have in mind for my eventual project will have loads of maps to move around in, with 3D movement (some of the characters can fly and/or dive into deep water, so this is kind of necessary), but although turn-based battles give me a chance to work out how to attack before I do so, the fact that unless there's a way to defend myself during the enemy's turn they might kill me if I'm outnumbered is rather unpleasant. I'll work that out later. If Python can do everything BGT does plus some, I'll be happy. smile

Edit: AND IT'S FREEEEE! I'm officially sold. big_smile

2015-01-20 11:34:45

Python is a full-blown programming language with C integration.
This means that engines that huge titles use can be what is called "wrapped" in python. That way you can use the engine in python.
So basically, you can do anything in python. The only reason why you go to C or C++ is for the speed.
But you are just learning now, so don't worry about anything yet!
BTW, real-time combat is easier than movement like swamp IMO.

2015-01-20 15:30:20

Then it's perfect! big_smile

Thank you again, Frastlin!

2015-01-20 15:44:08

A word of caution.  If you're only doing tiles or voxels (tiles but in a 3d array) you do not want any of the aforementioned physics libraries.  The physics libraries only help when you try to do something like swamp where everything can turn and move at arbitrary angles.
As for anything else, Frastlin is right.  It doesn't really matter if you're in BGT or not at the moment-you still have to learn programming itself, one way or another.

My Blog
Twitter: @ajhicks1992

2015-01-21 02:51:24 (edited by The Imaginatrix 2015-01-21 02:54:21)

How do you even navigate on a game like that with just the Arrow keys? Sounds like you'd need an analog stick like on a Play Station controller to do that. I'm guessing they're either optional libraries anyway or you can put something in your code if you want to include them. Given my level of experience, I really shouldn't be worrying about that at this stage, haha. tongue