SyntaxBomb - Indie Coders

General Category => General Discussion => Topic started by: johnno56 on March 20, 2019, 05:17:36

Title: Programming Language
Post by: johnno56 on March 20, 2019, 05:17:36
I am new to this forum and interested in making games, let's say, a little more involved than just Pong. My interests are in Space shooter; Platformers and text adventures...

Asking, "Which programme is the best for game development?", is a potential nightmare... So I won't... lol

I run with Linux Mint and would appreciate some suggestions. (No... going back to Windows is 'not' a valid option - lol)

I have used Basic since I could remember. SDLBasic, RCBasic and QB64 are my preferred mediums at the moment. When I said "used" I did not mean "mastered"... I'm not that clever... lol

J
Title: Re: Programming Language
Post by: Matty on March 20, 2019, 05:21:27
Well....there's always browser languages (javascript) - which will run on Linux, Windows, Mac, Android, iOS and pretty much everything out there and doesn't need compiling to run.....
Title: Re: Programming Language
Post by: johnno56 on March 20, 2019, 05:26:57
Well, I for one am impressed... A response with 5 minutes of posting... Thank you!

Javascript. Looks like I will be researching this one. Cool. Thank you for the suggestion.

J
Title: Re: Programming Language
Post by: therevills on March 20, 2019, 07:58:20
If you go with JavaScript, use the super-set TypeScript instead and you may not lose your mind  ;)

I still like Monkey2 for simple games, but my main games are still in BlitzMax (going over to BlitzMax NG real soon) - lots of people here really like AGK as well.
Title: Re: Programming Language
Post by: TomToad on March 20, 2019, 09:16:52
If you wish to stay with a BASIC style syntax, I would suggest either BMX-NG, AGK, or B4J.

B4J is free.  It also compiles to Java byte code, so the binaries will run on any computer that supports Java.  It does not support mobile, but there is the paid versions of B4A (android) and B4I (iPhone).
https://www.b4x.com/ (https://www.b4x.com/)

AGK costs money, but will compile for most any platform, including mobile and HTML5.  If it is too expensive for you, wait a bit as they often have good bundles on sale.
https://www.appgamekit.com/ (https://www.appgamekit.com/)

BMX-NG is currently my programming language of choice.  It will compile for Mac, Windows, & Linux right out of the box.  Mobile requires some extra setup.
https://github.com/bmx-ng/bmx-ng/releases (https://github.com/bmx-ng/bmx-ng/releases)

If you wish to try something other than BASIC style syntax, there is Monkey2, MonkeyX, CerberusX, and Unity aimed at game programming.  For general programming, there is Java, Javascript, C++, C#, Python, etc... (too many to list)
Title: Re: Programming Language
Post by: Derron on March 20, 2019, 09:26:26
QuoteBMX-NG is currently my programming language of choice.  It will compile for Mac, Windows, & Linux right out of the box.  Mobile requires some extra setup.
https://github.com/bmx-ng/bmx-ng/releases

For a better overview just use:
https://blitzmax.org


bye
Ron
Title: Re: Programming Language
Post by: Naughty Alien on March 20, 2019, 12:23:05
..everything folks already mentioned..cant go wrong..

..as for me, my attitude towards C/C++ turned to be something like this ..  ;D
Title: Re: Programming Language
Post by: johnno56 on March 20, 2019, 13:22:15
Derron. Downloaded from blitzmax.org and the program ran 'out of the box'. Tried some of the sample programs and the compiling failed.

In file included from /home/john/development/BlitzMax/mod/sdl.mod/sdl.mod/SDL/src/audio/nas/SDL_nasaudio.c:34:0:
/home/john/development/BlitzMax/mod/sdl.mod/sdl.mod/SDL/src/audio/nas/SDL_nasaudio.h:29:28: fatal error: audio/audiolib.h: No such file or directory
compilation terminated.
Build Error: failed to compile (256) /home/john/development/BlitzMax/mod/sdl.mod/sdl.mod/SDL/src/audio/nas/SDL_nasaudio.c

As I have not used the Linux version BMX before I have no idea how to correct this. Seem to be missing audio libraries?
Title: Re: Programming Language
Post by: Steve Elliott on March 20, 2019, 15:17:24
lmao @ that video.  Sound on to fully appreciate.   ;D
Title: Re: Programming Language
Post by: Amon on March 20, 2019, 15:54:47
@video Ahhh, aint laughed like that in a long time.  ;D
Title: Re: Programming Language
Post by: TomToad on March 20, 2019, 16:59:38
The github link I pointed to has instructions for installing on Linux.  Basically you need to execute the line shown in order to install all the necessary dependencies.
Title: Re: Programming Language
Post by: Naughty Alien on March 21, 2019, 04:25:54
...hint...play it at double speed...LOL..  ;D
Title: Re: Programming Language
Post by: johnno56 on March 21, 2019, 04:26:27
All dependencies were already already installed...

J
Title: Re: Programming Language
Post by: Brucey on March 21, 2019, 06:22:08
Hallo, you might also try installing libaudio-dev, or you could edit the header in sdl.mod/sdl.mod/include/linuxx64/SDL_config.h, and comment out the parts that refer to SDL_AUDIO_DRIVER_NAS. Then rebuild.

SDL generally requires more libraries available at compile time than at runtime - in order to better support the different libraries people will have on their systems. The libraries are loaded at runtime as required, so although you might compile in support for libaudio (for example), it may never actually be used by someone using your software.

In any case, I should add it to the list of requirements...
Title: Re: Programming Language
Post by: DaiHard on March 21, 2019, 09:46:49
If you are a BASIC fan, you could look at BBC BASIC for SDL:

http://www.bbcbasic.co.uk/bbcsdl/

It's free, cross-platform, and uses SDL2 to provide graphics support which should be suitable for games.

Best wishes,

D
Title: Re: Programming Language
Post by: johnno56 on March 21, 2019, 10:04:39
The installation of the libaudio-dev did the trick and stopped the error.

I ran most of the 'samples' and all but one game displayed 'way' to big. It was like watching a magnified corner of the display. I am not familiar with BMX or what to look for in the programs to check screen settings...

I suppose I can compare the game that did run with one that didn't and see if I can spot something... this is going to be fun...

Thanks for the help so far...

J
Title: Re: Programming Language
Post by: johnno56 on March 21, 2019, 10:20:14
DaiHard,

It's been a long time since I have seen BBC stuff run. Installed BBCSDL. Already had the dependencies installed and it ran "out of the box". Interesting IDE choices... Time to break out my ancient listings...

Thank you.

J
Title: Re: Programming Language
Post by: Derron on March 21, 2019, 10:30:32
Quote from: johnno56 on March 21, 2019, 10:04:39
I ran most of the 'samples' and all but one game displayed 'way' to big. It was like watching a magnified corner of the display. I am not familiar with BMX or what to look for in the programs to check screen settings...

Which one worked - which not?

I use NG for my game TVTower (tvtower.org) and nobody reported such an issue yet. Maybe it is a driver-thing? Which linux, which gpu driver (vendor binary blob or FOSS drivers) ?


Do you talk about "fullscreen" or "windowed"? I mean: does it change your desktop resolution?

bye
Ron
Title: Re: Programming Language
Post by: johnno56 on March 21, 2019, 11:06:26
The only game that worked was "tiledrop". So far all of the other samples are too big. The display is not windowed. I will attempt to attach some screenshots. My resolution is 1920x1080 and is only changed while the samples are running.
First is "system info", "Zombieblast" and "Astar Demo".
Title: Re: Programming Language
Post by: Steve Elliott on March 21, 2019, 11:54:57
Does anything work properly on Linux?   ;D
Title: Re: Programming Language
Post by: Derron on March 21, 2019, 12:05:23
My linux box works - except for some wine based application executions ;-)


@ johnno56
Maybe you should remove the 3rd+ parameters of the "graphics" command. so
graphics 800,600,0,32
becomes
graphics 800,600

I think in "windowed" mode it works - and it is a matter of running these apps in fullscreen on your computer.

If you are interested in solving this issue, feel free to create a thread within the BlitzMax subforum here (or Qube extracts our posts into a new thread...).
Some samples will use the default graphics drivers - while with NG you gained access to SDL - and so the "gl2sdl"-graphics driver. Maybe thinks work better there. But as said - we should better discuss this in another thread/topic.


bye
Ron
Title: Re: Programming Language
Post by: johnno56 on March 21, 2019, 13:48:22
I have been experimenting with the screen resolutions within each samples and have found that, in just about all of them, they can be modified to fit my screen. I am impressed by the quality of the samples. I think I will be looking for some tutorials....

Thank you for your help. Much appreciated.

J
Title: Re: Programming Language
Post by: johnno56 on March 21, 2019, 20:38:09
Quote from: Steve Elliott on March 21, 2019, 11:54:57
Does anything work properly on Linux?   ;D

Oh, very funny. Ho, ho, it is to laugh... lol

I have been using Linux now for 14 years. Initially, because I didn't do my homework, it was a bit of a dog's breakfast installing and running. But now, I can install and run a Linux OS, almost in my sleep. lol (well, NOT actually, lol) There are some Windows programs that I miss... But, no so much, as I have found alternatives... and "free". In the last 14 years I have not been effected by viruses (is that the right word?) or malware. So, over all, yes. 'Things' DO run on Linux and very well... But thanks for asking...

Have a great day.

J
Title: Re: Programming Language
Post by: johnno56 on March 21, 2019, 20:48:18
Quote from: DaiHard on March 21, 2019, 09:46:49
If you are a BASIC fan, you could look at BBC BASIC for SDL:

http://www.bbcbasic.co.uk/bbcsdl/

It's free, cross-platform, and uses SDL2 to provide graphics support which should be suitable for games.

Best wishes,

D

I tested BBCSDL on an old "Lunar Lander" program. Firstly, I found out the either IDE is VERY picky about the "case" of reserved/command words and also does not like it when I accidentally change the "case" of variables... lol
Once the program was debugged it ran... and finished. There were no errors... The program ran as it was supposed to do. But finished WAY too quickly. I suppose, back when it was originally written, most machines ran at a 4mhz CPU... Running it on a quad core i5.... Well, i'm not surprised that it ran so fast... I'm not complaining. There is probably a way to "slow" things down, but as I am new to BBC, I'm going to have to do some homework.

Thank you for the link... and the memories... Cool.

J
Title: Re: Programming Language
Post by: therevills on March 22, 2019, 00:03:20
Quote from: johnno56 on March 21, 2019, 20:48:18
Firstly, I found out the either IDE is VERY picky about the "case" of reserved/command words and also does not like it when I accidentally change the "case" of variables... lol

Since you are Linux guy (14 years), you should be very much on board with case sensitivity  :)
Title: Re: Programming Language
Post by: johnno56 on March 22, 2019, 00:51:18
I am. But it seems that BBCSDL is not clairvoyant... well, that's my excuse, lame as it is...   :))
Title: Re: Programming Language
Post by: DaiHard on March 22, 2019, 12:58:39
Hi John,

There's a setting in the "options" to force upper case keywords, or to allow lower case keywords. The default is upper case. In the latter, you have to be extra careful not to have variables that match the keywords (especially the first few letters).

Yes, variables are case-sensitive, which means you can have more of them!  :-)

Running fast - yes, in the "old days" we all just let everything run as fast as possible, in the hope it would be fast *enough*, but these days often you need to slow it down/run it to a timer. Both approaches are possible: you can either use WAIT statements (e.g. WAIT 1 waits 1 centisecond), or you can set/read the TIME pseudovariable, so you can ensure that you don't continue with the next loop until a certain time after the last loop ran, for example. For finer time measurements there's a TIMERLIB which you can install and use.

Including a WAIT has the added merit it gives the CPU a rest/chance to do something else, so in situations where the program spends a lot of time waiting for user input it's often good to include a WAIT statement inside the polling loop. Saves a lot of battery power/heat.

Hope that's helpful,

D

Title: Re: Programming Language
Post by: peteswansen on March 29, 2019, 20:05:32
How about "Scratch".... its recommended in the Linux versions I have installed on my Raspberry PI's
Title: Re: Programming Language
Post by: Pfaber11 on April 28, 2019, 15:05:00
I would suggest AGK2 although it's not free when it goes on sale which it regularly does it can be had for 25 to 30 quid . I waited and got it for 25 over a year ago. I consider it to be really cool and you can export your games to mobile and write on Linux too. I tried it on Linux and it works very well a while back. Been looking at PureBasic myself and it just reinforced my liking for AGK2. AGKstudio is to be released officially in June and will be using the Vulken engine which will apparently give a 20% speed increase I think it launches on 10th june so only 5 or 6 weeks until it's released. I think if I had no money and wanted a language for free I might look at Python which is supposed to be easy to learn and is looked upon as a professional language ( I think) . I tried visual basic about 10 years ago but the results were pretty crap. Great for forms but for games I think it's rubbish . Methods . hmm. I believe VB is not being supported now and is a dying language. C# is microsofts baby now as far as I know. .net   .horrid  . enjoy your weekend, Bonjour