2019-02-08 20:43:51

posts 24 and 25 said it much better than I could ever put it. To get people off of BGT you actually have to solve the issues that BGT creates while not  introducing any yourselves. I think this could be it, but as was said in 24 and 25, you don't need to reinvent the stuff that python already gives you. come up with coding standards and a plan. start small and build from that. be intentional about the function and libraries you add. If it doesn't solve a problem or duplicates something in the STL, why is it being included. The STL is going to be 1000% better than any functions you write. more secure, better tested, and as previously stated everyone knows them.

I don’t believe in fighting unnecessarily.  But if something is worth fighting for, then its always a fight worth winning.
check me out on Twitter and on GitHub

2019-02-08 21:32:26

People need to learn how to use the Python terminal with the help function. Most of the documentation for all the things will be accessible from there.
To find those string functions, see what happens when you type:
a="Hello!"
help(a)
... Ok, that's actually an uncomfortably huge amount of information, much of it safely skippable. But that's the general idea. You can call help on just about anything, and it will give you information.
It did take an annoying amount of digging to find chr and ord, though.
This does remind me that I should check out how 64 bit ints work with Python. It turns out that bitwise operations with 64 bit ints are super easy to mix up with 32 bit ints, resulting in some weird crap (I had to write new string_to_hex and hex_to_string functions for BGT to get around this).
I have a port of the sound_pool somewhere, but it used camlorn_audio, among other issues. I tried installing pyfmodex ... was that yesterday? Wednesday? Anyway, really deep traceback I haven't dug through yet, just from the first import, so that's a journey that will wait until tomorrow.

Some of my games
Keep up to date by following @Jeqofire on twitter!
Ear Ninja?

Thumbs up

2019-02-08 21:57:30 (edited by Ethin 2019-02-08 22:11:51)

@27, don't use pyfmodex, use ctypes. Its extremely easy. I have a test program that uses the DLL. Perhaps i should document it and upload it sometime... But yeah, I agree with you. Python isn't overly difficult, and there is more resources available on it than pretty much any other language (given the fact that its pretty much the top language in the world these days).

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.

Thumbs up

2019-02-08 22:49:31

To get help with python standard objects documentation there are different ways.
1. Read the module doc in the standard library section of the python manual which is available both locally and online.
2. As CAE said create an object as a string, list dictionary etc and type help(obj)
You can directly get help on a builtin list such as a list by typing help(list).
3. There is an other way which can be powerful, and uses the doc strings of python classes and functions. It's called pydoc. Pydoc generates a documentation based on the module doc strings. To generate  a pydoc html file with the generated documentation you can type:
pydoc -w file_you_wish_to_look_at.

If you want to get in touch with me you can follow me on Twitter
have a nice day.
Paul

2019-02-09 04:34:17

hi,
if you want the functions and variables of an object, just type dir(obj) or obj.__dict__
now, for the guy who said python is slow.
for your answer, just checkout ai libraries (mxnet (which is my primary ai library and i can help you with it if you have any questions), tensorflow, theano, pytorch etc).
why do they use python while it is slow and training takes time?
the answer is simple!. python is fast!.
if you want a benchmark, just create a factorial function and test it!.
regarding c++ which people said it is faster than python!.
this is true, but it depends on how you code. sometimes optimizations can have impact on your code. even codes generated by different compilers performs differently.

bitcoin address: 1LyQ3hziMC2DTnCtgM3V1zfuZ73P3CYT9P

2019-02-09 04:57:19

@28: Why? Are there known problems with pyfmodex? Is it a performance issue? Something else?

Some of my games
Keep up to date by following @Jeqofire on twitter!
Ear Ninja?

Thumbs up

2019-02-09 06:05:56

Hi,
Thanks everyone. Post 24. I appreciate your suggestions and will improve my shortcomings.
I still remember the time when I had released my first game with a friend. That was an exciting day. The release was small, but it was something we made ourselves. But that was it. I have decided to leave BGT on that point, because I wanted to be a mainstream programmer; not just someone who uses an audio game kit people never heard the name of as well as other obvious reasons. A quick google search revealed python is the easyest to start with, hence I began learning. This phase is pretty crucial; I always thought of releasing a fully featured audio game for people to play, and often in excitement I'd open google to search about the libraries I can use to make it. But that always lead to the fact that there wasn't a beginner friendly solution. You'd need to find and assemble all the libraries you need manually. Accessible_output2 and others. Who can forget the countless topics beginners have made which were made to ask how to fix the errors with installing that speech library. Or how do we set up tolk etc, or countless topics about 3d audio libraries. And somewhere between all this, a thought was always flipping back and forth. Why not just fallback to BGT, you have all resources you need there already made for you?
This project is exactly meant to help programmers during this state. I dont encourage anyone to stick with the library I am writing forever; This is only meant to help newbies and give them a bit easier welcome to python. They can pick the library up and start from there. And believe or not. In the process, they will actually learn more and more python.
Well just a simple question. What's better.  to stick to BGT, which isnt cross platform, isnt even a coding language and all such issues? or to stick to a python library, which is actually making you comfortable with python on your initial learning phase?
And oh,WXPython is beeing used for alert and input_box functions. pygame is doing the window and keyboard handling. If pygame has those dialogues, accessible somewhere, I can easily get rid of wx from the project.
Finally. I believe a properly developed tool to make games with, needs to be exist and maintained. Tools are there, but unfortunately kept private. That's fine though, if somebody says Liam to share his tools, that's not correct in my opinion, because those are the tools of a comercial company. Same goes for AHC people; asking them to share their game engine will be rediculus. But individual projects. Those should be shared for everyone's benifit. People have the required knowledge to develop and release something which is way better than the thing I have here and that too they can do in a few days. But unfortunately, no one is taking off any time for it. Ethin for example. He can be found bashing BGT where he can. But so far, I dont see any step forward to rectify the issue, instead of just talking and bashing, even though he has knowledge I can only dream of as a beginner at this point.
Regards,
Amit

There once was a moviestar icon.
Who prefered to sleep with the light on.
They learnt how to code, devices sure glowed,
and lit the night using python.

Thumbs up

2019-02-09 06:27:32 (edited by Ethin 2019-02-09 06:27:55)

@31, using the DLL is much easier than using pyfmodex. At least, its easier for me. You can wrap a lot of it, and the functions in the DLL match the C API. Wrapping structures is a bit more complex, but it is doable.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.

Thumbs up

2019-02-09 08:50:08

Hi, wow!
this is quite a neet little set of functions that you made.
keep up the good work please, i am sure i will leeve bgt once this project is complete.
If you want a sound pool that works with sound_lib, why not use the one on kianoosh's github?

best regards
never give up on what ever you are doing.

2019-02-09 09:07:34

I'm going to echo the sentiments of others.

You are doing yourself and the community a massive disservice by wrapping standard language functions. I understand this forces people to learn a whole new set of functions, but the bright side is that they will be able to take that knowledge and apply it to non-gaming programs. As you said in 32, you want to do mainstream programming. No one will be using BGT style functions.
I'll echo others here and say focus on creating classes for things a game can use like a sound pool, menu class, timer, auxiliary functions, ETC.

That being said. I think you have a really fantastic idea, but you're going about it the wrong way. Use the feedback you are getting from other devs, and build something cool that will help leverage the Python language, not replace it. You never know, this could be the thing that gets people coding in Python. Wouldn't that be exciting?

My name is Inigo Montoya. You killed my space bar. Prepare to die!

http://l-works.net

2019-02-09 17:45:42

Braces like in BGT and C++, and just the syntax of them over all, is much better than in Python, no matter what you say. And I like BGT.

Best regards
T-m

Thumbs up

2019-02-09 18:03:49

tmstuff000 wrote:

Braces like in BGT and C++, and just the syntax of them over all, is much better than in Python, no matter what you say. And I like BGT.

Best regards
T-m

And that's fine as that is your opinion, but that is not a generalized statement. Many people would disagree with you including myself. I personally am glad to be rid of braces. Indenting my code makes it way easier to follow, and not having to end each line with a semi-colon is also nice. I truly hope to never have to do anything with BGT in the future. I have found much more efficient ways of accomplishing tasks that BGT could ever hope to match.

My name is Inigo Montoya. You killed my space bar. Prepare to die!

http://l-works.net

2019-02-09 18:24:52

@36, I have to disagree. As liam said this is only a preference. You may find it better over all because you find your self confortable with it. But I could tell you the same thing about python.

If you want to get in touch with me you can follow me on Twitter
have a nice day.
Paul

2019-02-09 19:06:44

I would agree with this idea, but I think we could spend our time trying to get a good working sound_pool and a new menu class. Do I think its bad what you're doing? Of course not. I think its great. I personally think you should have focused on the keyboard handlers more than you did on wrapping the string functions as most of them only return calls to other functions. Things like string trim, string_left,string_right, etc etc are pretty good though. I agree with Liam here, you have a good idea, but you're going about it the wrong way. I would leave what you have already as it is, but I would focus more on things like menu objects and sound positioning.

Ivan

2019-02-09 19:12:46

damn, I have been working with python  for the better part of a decade and didn't know about the help function. man, that is really useful. before whenever I waanted to look up the signature of a python function or something I would google it, but this is way more convenient!

also, yeah, an audiogame library for python would be great. just like everyone else already said, don't re-invent the wheel by remaking standard library functions and fo focus on the stuff the standard library doesnt provide for audiogames.

Thumbs up

2019-02-09 19:32:10

i think that it would be a grate idea.
I am learning HTML and java script. and it would be grate if i could learn some  python  also

code is funn

Thumbs up

2019-02-10 05:14:41

Hi,
Thank you everyone. So as everyone suggested, next commit will remove those builtins and focus will be now on only providing important BGT objects and functions which are not already available in python.
Now, I'd need a bit of help.
I'd like to add a proper 3d audio system in this engine now, because that's a part where most beginners struggle. There are three options.
1. Use libaudioverse, but then that's not for the mac.
2. use pyfmodex.
3. Some of you may know, there is a well maintained engine called panda3D. That has FMOD bindings already. So if anyone can guide me through the documentation, I will be really grateful.
It's possible to create a new binding of course. But as everyone stated, why reinvent the wheel if it's already made. So, what are your opinions?
This is probably the biggest part of the engine, other things like menu system or gui forms etc arent that much of an issue.
Regards,
Amit

There once was a moviestar icon.
Who prefered to sleep with the light on.
They learnt how to code, devices sure glowed,
and lit the night using python.

Thumbs up +1

2019-02-10 07:32:43

just a warning. If anyone wants to sell games using the engine and you use FMOD then they will have to pay out serious amounts of money for an FMOD license.
It's why I avoid FMOD like the plague.

My name is Inigo Montoya. You killed my space bar. Prepare to die!

http://l-works.net

2019-02-10 07:53:29

there is a library called SoLoud which you can find it here
also, you can use OpenAL instead.

bitcoin address: 1LyQ3hziMC2DTnCtgM3V1zfuZ73P3CYT9P

2019-02-10 09:06:45

Camlorn_audio uses OpenAL. It's pretty easy to use, but has some serious issues. The biggest is the limit on the number of sounds, and that it crashes if anything is garbage-collected. I also find the format restrictions (as in, I am required to go convert every single file I have into mono) annoying. I mean, a lot of my stereo sounds are stereo because Javasound wouldn't let me adjust their position if they were in mono. If there was some way to slice stereo files into two channels that picky sound engines could handle (and then install that into all the sound engines GRR)...
... But yeah, if OpenAL is on the table, Camlorn_audio made it far more usable, and I have a sound_pool class that uses it (and defaults to pygame for unsupported formats). I need to upgrade it to better support eax, and to use dictionaries to keep sounds from being collected. I also remember there being some other unpleasantries in how that sound_pool turned out, the last time I went back to look at it.
Also, camlorn_audio is deprecated and Camlorn said emphatically that it is a bad idea to use it. IDK if it's forward compatible.

Some of my games
Keep up to date by following @Jeqofire on twitter!
Ear Ninja?

Thumbs up

2019-02-10 10:16:14

Hi,
I have searched about openal, but seems all the bindings ever created for it are at least 5 years old if not more. Also, hrtf seems to be missing as well.
SoLoud would have been good, but it's official website states it may not be so fast as other libraries are. And I do remember the firefight developer saying how he has tried it and it's laggy.
Do you think steme audio can do this job? that'd mean writing a binding though.
Regards,
Amit

There once was a moviestar icon.
Who prefered to sleep with the light on.
They learnt how to code, devices sure glowed,
and lit the night using python.

Thumbs up

2019-02-10 11:01:57

What ever engine you decide to use, most likely you will have to bind it. Bass is another option, but does not do HRTF. Don't forget though to check the license agreements of what ever you decide to use to find out how they can be included in to projects including any possible attribution.

My name is Inigo Montoya. You killed my space bar. Prepare to die!

http://l-works.net

2019-02-10 12:02:16 (edited by Ethin 2019-02-10 12:03:45)

@Liam, you don't need to shell out huge amounts of money to use FMOD. If your willing to release one proprietary game per year, and your budget is under 500K, FMOD is the library for you. Believe me, Wwise is even worse. The license terms for FMOD make a lot of sense: they expect that a high quality game will take (at most) 6-12 months to make, test, extend, and prepare for release. FMOD is designed by games for gamers, and so they expect that you will use it to make games that are ultra-high quality, or as high-quality as possible, and therefore they expect that you'll put in a lot of time and effort into it to make it the best it can be.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.

Thumbs up +1

2019-02-10 13:38:33

Glad to see that changed. It used to be that you could release games for free, but any game that you released that you charged for made you ineligible for the Indy tier.

My name is Inigo Montoya. You killed my space bar. Prepare to die!

http://l-works.net

2019-02-10 13:40:21

Also. There is this, but this shouldn't be a big deal to write a function to do this.

. Do I have to add an FMOD logo to my project?
A. Yes, when using FMOD, a logo is required to be displayed on screen, before gameplay starts. Logo files can be found here. If you wish to be exempt from this, contact [email protected] for price options.

My name is Inigo Montoya. You killed my space bar. Prepare to die!

http://l-works.net