2014-09-25 14:50:06

Hi, I'm taking a programming class in school, and this year everyone is working with unity, which is an engine for developing 3d video games. I've played around with it a bit, but it doesn't seem to be very accessible. I was wondering if anyone knew of a way to use this engine, possibly to make audio games? I suggested BGT to my teacher, but they aren't sure if it's as complex as unity.
I know this is a strange question, but any suggestions would be appreciated.
Thanks!

Prier practice and preparation prevents piss poor performance!

2014-09-25 16:40:16

Unity isn't very accessible. It can be used to make audio games, if you can get sighted assistance. The thing with most tools like scripting language compilers that aren't accessible, is that most of the time, typing the code into a file isn't the problem. The problem is the compiler most of the time. BGT is complex enough, depending on what you want to do. So, you might try to show your teacher a game made in BGT and give some background info on it.

Power is not the responsibility of freedom, but it is actually the responsibility of being responsible, it's self, because someone who is irresponsible is enslaved by their own weaknesses.

2014-09-26 16:46:03

If bgt doesn't meet any teacher requirements, there is the possibility of using python with pygame or pyglet or some variant there of. If she's looking for any particular 3d physics, libraries like pyode exist.

Deep in the human unconscious is a pervasive need for a logical universe that makes sense. But the real universe is always one step beyond logic.

2014-09-26 18:24:40

Are we talking about making 3D objects do 3D things?
In that case, BGT is not going to be all that great (I made a 3D library for BGT, but I am not an expert at 3D things and it is very minimalist).
Python with pygame/pyglet, with Pyode/Panda3D/Bullet might be better for complexity's sake.
I looked into the 3D packages available for Python over the summer, and my conclusions were:

  • VPython is amazingly simple (but only does graphics, no physics, and I couldn't get my tests to actually work)

  • Pyode beats Bullet and Panda in terms of learning curve and speed.

  • Panda is portrayed as a complete 3D game development platform that is supposed to be fairly easy to use. The tutorial drove me crazy very early on, but that might just be me.

  • Visualpyode / VPyode combines Pyode with VPython to get graphics and physics all in one package. While it's still pretty high-level, some nice features of the two packages get lost for lack of analogues (I think there are work-arounds for these, but they were kinda cumbersome to hunt down), and the object hierarchy gets more complicated (not Java3D complicated, thank the light). It was also a pest to hunt down because of poorly labeled links and the fact that Source Forge.

  • There are others, but you would have to pay me to try and mess with anything that low-level when the above packages exist. My brain is complaining vigorously when I tell it to go work on a simple UTF8 program; shaders and rotation interpolaters and combining multiple vectors and scene graphs in which half the parts don't actually do anything and are just there for somantic reasons... I'll take VPyode, thanks.

看過來!
"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.

2014-09-27 01:05:48

Hi, thanks for the suggestions! I'm not sure if my teacher wants 3d necessarily. From looking at unity a little, it seems like it mostly just uses coordinates for positioning and the engine does lots of the actual picture rendering based on what you tell it. Unfortunately the most complicated open source bgt game I could find on short notice was windows attack, so showing the code apparently wasn't very reassuring. I can maybe look into python and pygame, and maybe some 3d audio libraries? I'm not quite sure, though.

Prier practice and preparation prevents piss poor performance!

2014-09-27 01:39:26

So.
I'm assuming this is some sort of game programming class or something for high school as opposed to college.  If it is a game programming class and it is optional, I'd get out if possible: so much of it is going to be visual, up to and including making/getting/working with graphical resources; your time would be better spent online or in a more general programming class.
That said, BGT is probably not going to work.  This is not about complexity-ironically, BGT is probably more complex than unity, at least if you're trying to do the same things that unity does.  A lot of the draw of unity is that you can literally edit the game while playing it, or at least seeing how it will look to a player: it gives you what is basically visual studio on steroids, and you build really, really complex maps by using what is basically paint on steroids.  "When the player is this close to this object" is all drag/drop/click the menus, and then "execute this script" is finally, at long last, coding.  Walking is handled.  Collision is handled.  Physics?  Handled again.  At least half of unity is about the artist, not the programmer, and consequently Unity lets the artist do a lot of what people think programmers do.
So basically, without any programming at all, you get a truly tremendous amount of stuff.  Epic.  Give me something equivalent for audiogames, and I can give you a new audiogame literally as fast as I can figure out level design.
BGT does nothing like this.  BGT doesn't even have graphics, not unless something happened while I wasn't looking.  The ability of your teacher to grade or even appreciate a project done in BGT is limited, possibly nonexistent.  If you wanted to duplicate unity in BGT, assuming someone gave you graphics, you'd be looking at 5-10 man-years, linear algebra, trigonometry, possibly basic calculus.  Most of the systems for the sighted are this way.
There are literally two alternate universes here.  The universe of blind gamers is so far from the universe of what Unity does that, unless you've played a game for the sighted, you are probably not able to appreciate the differences.
If you have a sighted partner, looking at one of the code-based engines will do the trick, but you won't be able to go nearly as fast as your sighted peers because you'll be implementing stuff they get for free: as an example, collision detection, a scripting system, etc.  The stuff you have to deal with to make a Unity-level game without Unity includes all the aforementioned maths (yes, even if you have libraries.  Understanding those libraries requires it).  There is no accessible alternative: even things like Panda3D don't come close in the sense that they're still slower, at least not for a blind person-any of these frameworks may have comparable tools, but the tools have the same exact challenge as Unity.  I surveyed all of the RAD options for games for the sighted, especially MMO-style games.  They are all basically Unity by another name, and most of them don't even have accessible text editing.
All alternatives in this thread are like comparing spaceships and the internet.  Both are very technological, great examples of their type, wow humans have come a long way.  But the internet and spaceships have nothing in common.  The world of Unity and alternatives to Unity is completely separate from the world of <3 or 4 packages and purely programming>, in much the same way that these don't even compare.
Sorry to be the bearer of bad news, but there is no purely programming approach that is even comparable.  No matter what you do, you're basically going to need a different syllabus or to work in a team and take the back seat on everything.  To do the same as your classmates, you will have to deal with at least 10 times the complexity and probably 100 times the code.  The games you will make due to your visual impairment will not be able to incorporate the third dimension, at least not with the time you have (I'm assuming the standard semester).  Even if you had more, literally the only example that comes close is Audioquake.
As for making graphical games as a blind person in general?  Not without sighted help or remaining vision.  CAE is the only one who is trying to my knowledge, and I don't think he's managed it yet.  I also think he's having help (CAE, correct me on this if you've somehow managed to do it without).

My Blog
Twitter: @ajhicks1992

2014-09-27 08:18:29

No help yet. I blame my terrifying lack of people skills, though. My image-to-sound/braille program is not anywhere near good enough to do cool things on the fly, yet. I've advertised for help in places and will accept it if anyone ever decides to take me up on it.
(I think I could do it fully blind anyway, if my willpower wasn't shot all to hell. It was like pulling teeth to get myself to write some simple UTF8 utility functions... and those are right up my alley. That said, I am only so confident because I put a lot of effort into developing exactly those abilities while I still had enough vision for it, and I did sorta-kinda manage a terrible-but-fully-visual first-person "game" via powerpoint 2 years after my vision went from bad to worse. No, it is not accessible, even though I made it me-playable.)


Someone is trying to develop some sort of game engine in BGT, but I think they're working alone, and are running up on the same sorts of physics issues we all are.
(Possible pipedream: Senseg just made their SDK and test tablets available for order. Wonder if it'd be too big a PitA to get a hold of that and build a tactile interface for Unity with it? I'm guessing yes, but I can dream, dangit.)

看過來!
"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.

2014-09-27 08:37:22

Hi, thanks again for the advice. I'm not sure my teacher wants the game itself to be complicated, they just want to make sure I'm getting the same or similar things out of the class as everyone else. Alternatives are definitely possible, though. It doesn't even necesarily have to be a game being programmed, as the gaming part of the course is only being done in the first term. I suggested an audio game, so I could be doing a similar thing to the rest of the class.

Prier practice and preparation prevents piss poor performance!

2014-09-27 16:21:45

I'm wondering if this is a High School or college course. Sounds like more of a High School one, but I'm not sure since you've been here for 7 years according to your forum register date. Just curious. I have nothing helpful to offer, as I am not a programmer, just your slightly above average gamer.

My opinions are my own. I try not to state them as facts and if I'm not sure about something, I do whatever research I can. I feel everyone should consider doing the same.

2014-09-27 16:44:15

Hi, it's in between high school and colege level, if that makes any sense. I'm taking it through high school but I also get university credits and such for completing it.

Prier practice and preparation prevents piss poor performance!

2014-09-27 19:04:45

You'll get more in terms of learning, just not as much in terms of functionality.  Everyone else isn't going to know how the game loop works, for example: unity hides this, as well as basically everything else.  They probably won't even really talk about data structures or program design or etc: again, a lot of it is hidden by Unity.  Unity is like training wheels which are capable enough to build skyscrapers, in some sense.  Stay inside the unity gameplay box (it's a pretty huge box-there's even been games done that manipulate time and simulate relativity) and it's going to make things remarkably simple.
Also keep in mind: if this is a high school class and you've done any programming before, it's possible that you know more than the teacher.  This is less true of college, but I saw it once there: I knew more about C than the professor teaching us C back when I was at the community college.
As for BGT equivalents to Unity?  Yeah, good luck.  Box2D makes so many problems go away.  Maybe it's possible to bind it, but not fully: collisions are callback-based.  Also something like SQLAlchemy can produce worlds that are fully persistent-the game save is the game map, and editing is just a special menu while playing.  If I pulled together 4 or 5 Python libraries, everything from WXWidgets to Pyglet, I could do it in a year or two.  But I'm not confident on that estimate; there's probably problems I don't know about.  But to do this in BGT, I'd have to reinvent Pyglet (input handling that's not if statements), Box2D (uses every math you can think of), and the audio equivalent of all Win32 controls including multiline textboxes.  Not to mention that you're now coding for more than one type of gameplay and need to invent interfaces that haven't been invented yet for quick and sensible map editing.
And as for games with graphics?  Doing 3D stuff will never, ever be testable because the depth part doesn't translate to touch.  I suppose some sort of 3D tactile display might come along, some sort of nanoclay or something like that (such things have been worked on), but not for a good while yet.  2D stuff might be in a few years with a tactile touchscreen, but isn't yet: the VOICe doesn't have the resolution unless you're a prodigy.

My Blog
Twitter: @ajhicks1992

2014-09-27 19:48:03

Hi, thanks again for the advice. I've seen what you mean with teachers who don't really know what they're talking about, but that doesn't seem to be the case. They just weren't sure how complicated something like this would be as audio games are something that most people haven't encountered before.

Prier practice and preparation prevents piss poor performance!

2014-09-28 03:55:05

A lot of Win32 controls have audio equivalents in BGT, but the functionality could be completely different for all I know (and I remember the original audio_form class having loads of bugs and now I have no idea if the current best is built-in or if it's someone's external file somewhere).
You'd still have to build everything else from scratch, though, at which point it's easier just to point to Python and go from there.

(I wasn't thinking 3D in touch would be actual 3D ala Aerial3D, so much as something more like what 3D is visually in the first place: shading and projection on 2D to create sufficient illusions for editing. But even then, can Unity be artificially restricted to 2D to simplify things?)

看過來!
"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.

2014-09-28 15:52:54 (edited by camlorn 2014-09-28 15:58:56)

I don't believe Unity can be, no.  These engines are aimed at a certain type of game, and as I recall Unity's niche is first-person.  But sighted first-person is way different than ours, because you can rotate and move about all 3 axes.
BGT doesn't have quite what I mean.  At some point, an equivalent needs a program editor.  A program editor needs at least a textbox, a menu bar, and a couple options dialogs.  Can you do this in audio? Yes, but you'll have to recode literally all the editing tools for starters.
And as for 3D, the perspective stuff is based off intensity of hue.  You're not going to be able to feel it with your finger.  Really.  Consider the geometry textbooks with 3D cubes and how hard those are.  Now consider that it might be 2 objects one behind the other or one object that's got a strange shape...the sighted use color and other subtle clues for this, but we don't have them.

My Blog
Twitter: @ajhicks1992