GPWiki.org
GPWiki.org
It is currently Mon May 27, 2013 2:54 am

All times are UTC




Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Sun Apr 08, 2012 1:03 am 
Rookie

Joined: Sun Apr 08, 2012 12:40 am
Posts: 1
Hello, I would like to make a board game (or tactical RPG) based on the Dungeons and Dragons boardgames (e.g. Castle Ravenloft, Wrath of Ashardalon). My question is, which programing language would be easier for me?

The game would be very simple, without any animations. I thought about the game reading some .jpg files and printing then on the screen instead of drawing the board itself.. with mouse and keyboard interface.. simple mp3 as music in the background and .wav files for combat sounds.

I am not a professional programer, but also not a full beginner - I used to be skilled in the old QBasic like 15 years ago and maybe could do this game in QBasic but nowadays it is absolutely limited.

Do you advice me to try making my game in: C++, python, java or Visual Basic ? Or other language?
I would have to learn the language from the beginning, maybe VB would be easier since I can remember my old days of Qbasic, but I'm not sure if its good for making these sort of games.

Thanks!
Rubens


Top
 Profile  
 
PostPosted: Sun Apr 08, 2012 5:36 am 
Harmlessness does no harm
User avatar

Joined: Tue Sep 14, 2004 8:37 pm
Posts: 3810
Location: Ferriday, LA, US
If you want familiarity, you could use QB64 -- a modern compiler that supports the QBasic dialect, adding to that new functionality suited to gaming (such as an interface to OpenGL, should you have the ambition).

Really, pretty much any language is capable of doing what you want, from native C or C++, to client-side JavaScript, and everything in-between. Given that, it may be more appropriate to add another criterion to your decision-making: Target.

So, how do you want to deploy your game? Would you plan to stick to a certain system type (desktop, mobile, Web, etc.)? Furthermore, what operating systems do which to support for those system types? Do you want to allow your app to be used online in a Web browser, or do you want people to download and install your app?

Knowing the "how" is only half as important as knowing the "why" when accomplishing the "what." :)

EDIT

Note that Visual Basic 6.0 (to which this forum section is dedicated) is very different from QBasic, just as it is different from Visual Basic .NET. That said, VB6 is obsolete in that Microsoft has discontinued support for VB6 apps, and is gradually removing the ability from Windows to run those apps. Of the three, VB6 would be the one I would most likely recommend against.

_________________
What most people don't understand about "enlightenment" is that it is not an end-goal; but where you find yourself just before taking a new "first step."


Top
 Profile  
 
PostPosted: Sun Apr 08, 2012 9:21 am 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
As already said, the target you want to deploy onto is a big factor. Some languages simply don't run at some places, eg you cannot run a BASIC program in a web-browser.


Never programmed in Windows, so I don't know about the BASIC s you mention.

If you want the same kind of feeling as BASIC (just write code that does the work, no need to declare everything at first), then Python is a good choice. In fact, I'd advise it in favor of any BASIC, as it is a very well-designed language, easy to get into.

The advantage of not declaring everything first turns against you as the program gets bigger. The language happily accepts anything, including mistakes that you make. Incorrect data values get passed along to many places until at some point you try to use it, and BAM, it breaks the program.
Finding the original cause is then a major challenge.

This is where statically typed languages such as C++ and Java shine. You have to write 5-30 lines of declarations with every function you write, but it enables the computer to check whether you keep your promises, and barks when you try to sneak a wrong kind of value into a variable.
The computer can also use this information to execute the program faster, which for some applications is crucial. Your application does not seem to need that :)

C++ is quite close to the real machine. Eventually, everything becomes a number, and you can do just about everything, and you have to organize everything yourself. It is also a very powerful language, but at the cost of becoming complicated to write and understand.

Java stays further away from the real machine, by forcing a classes and objects world upon you.

C# is somewhat in the middle between the above, I think. It's windows-only, so I have never used it, but it looks Java-ish, with hooks to do weird stuff if you want.



Last but not least, I have a question for you. Why do you post a question like this in a VB programming section?
Why did the "language agnostic" section look worse for it (as that's where I'd expect it) ?
(I am not a moderator here, but for some reason people tend to post these kind of questions at the wrong spot, and I am curious how that could be improved.)

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Sun Apr 08, 2012 1:39 pm 
Grand Optimizer
User avatar

Joined: Mon Jan 17, 2005 6:01 pm
Posts: 352
Location: Canada
Whatabout Visual Basic? It's easy to pick up, not hard to get basic sounds/images going. Especially if your game is turn based.

_________________
"None are more hopelessly enslaved than those who falsely believe they are free."
"It is no measure of health to be well adjusted to a profoundly sick society."
"Hope is the first step on the road to dissapointment." -Jonah Orion
http://tankzgame.blogspot.com


Top
 Profile  
 
PostPosted: Sun Apr 08, 2012 4:10 pm 
Shake'n'Baker
User avatar

Joined: Mon Jun 14, 2010 3:51 pm
Posts: 62
rubensduarte13 wrote:
Do you advice me to try making my game in: C++, python, java or Visual Basic ? Or other language?
I would have to learn the language from the beginning, maybe VB would be easier since I can remember my old days of Qbasic, but I'm not sure if its good for making these sort of games.


If you find VB easy then use it. And XNA does support VB .NET.

While I was on a wild goose chase ie choosing the best programming language for me, I found a question about Java vs Python in stackexchange.com (sorry I dont have the link). The answer says CPU time/cycle consumption (ie performance) is (getting) much cheaper than development time.

So VB, python and other languages that are easy to learn are excellent for hobbyist.

Btw, HTML5 & Javascript (JS) is not bad either. There are two ways to develop either DOM manipulation or canvas. Presenting stuff (image & text) in html is very easy to do, while using JS to add eye-candies (animation & such). Or use JS full-throttle to render in the html5's canvas element.

Pros:- Publishing it on the web makes it available to a wider range of audience (They would just need a web browser)

Cons:- It's new to you and learning new thing does increase your development time.


Top
 Profile  
 
PostPosted: Sun Apr 08, 2012 10:03 pm 
Harmlessness does no harm
User avatar

Joined: Tue Sep 14, 2004 8:37 pm
Posts: 3810
Location: Ferriday, LA, US
Meneliki wrote:
Whatabout Visual Basic? It's easy to pick up, not hard to get basic sounds/images going. Especially if your game is turn based.

Yes, but you may want to be specific: Legacy Visual Basic (6.0); or modern Visual Basic (.NET). Big differences between the two. :)

Also, I see Alberth suggesting C++... which prompts me to recommend considering C an option. If you don't plan on becoming a hardcore software engineer, C is a good substitute. Capable of just about everything C++ can do, but more straightforward (C can be more or less mastered within a year; C++, you're looking at closer to a decade).

Still, if you don't plan on becoming a "full-time" coder, you're probably better off choosing something simpler (Python, JavaScript, Lua, etc.). Why build a flux capacitor when a AA battery will do? :)

_________________
What most people don't understand about "enlightenment" is that it is not an end-goal; but where you find yourself just before taking a new "first step."


Top
 Profile  
 
PostPosted: Mon Apr 09, 2012 7:28 am 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
Good point. Indeed C is a good way to start before taking on C++.

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Thu Apr 26, 2012 1:26 pm 
Mumbo Jumbo
User avatar

Joined: Fri Aug 20, 2004 1:15 pm
Posts: 804
Location: Michigan, USA
for something like this i would suggest VB.net

it's quick and easy

_________________
The path to hell is paved with clever code.


Top
 Profile  
 
PostPosted: Mon Apr 30, 2012 9:22 am 
Technomaniac

Joined: Sun Dec 05, 2004 11:27 am
Posts: 3249
Location: Sydney, Australia
Alberth wrote:
Good point. Indeed C is a good way to start before taking on C++.

And many consider C a good place to go to after C++ :)

There is a lot of depth to the language, and it is actually quite good for building large things and small.

_________________
Trying is the first step towards failure
b


Top
 Profile  
 
PostPosted: Mon Apr 30, 2012 11:49 am 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
??????

C is included in C++, so how can you have more depth in the C language?

Anyway, I would really miss the class, template, and operator overloading constructs of C++, so no, thank you :p

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Wed May 02, 2012 10:58 am 
Technomaniac

Joined: Sun Dec 05, 2004 11:27 am
Posts: 3249
Location: Sydney, Australia
Alberth wrote:
??????

C is included in C++, so how can you have more depth in the C language?

I don't believe I said it had more depth. I said it had "a lot of depth". (but if you are looking for things in C that aren't in C++, then variable length arrays and restrict are two things that come to mind)

Quote:
Anyway, I would really miss the class, template, and operator overloading constructs of C++, so no, thank you :p


And when using C++, I miss the ability to easily reason about a line of code so I can understand what it is doing without having to have a huge mental model of the entire program. Things like operator overloading make code more dense, but they tend not to make it easier to actually figure out what something is actually doing. Templates are so complicated that they required a new language feature just to try to make the error messages understandable, but getting that feature correct was too hard, so it never made it into the language. Classes have a tendency of making people put implementation details into header files. Most C++ code has header files with lots of implementation details in them. Most C code has header files describing an API. I know which I'd prefer.

Sure, you can write very similar code in C++ to in C, but you rarely work in a vacuum, so you either embrace all of the complexity of C++, or you are forced to maintain some description of the particular subset you are using.

_________________
Trying is the first step towards failure
b


Top
 Profile  
 
PostPosted: Sat Sep 22, 2012 10:45 am 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
Alisa wrote:
The Best Programming Languages for a Board Game is

"C++" and " java"
Why do you give that advice?
With board games, you're not in any hurry, response times of a second are very acceptable.
So if it is not speed, what makes it the best choice?

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Mon Sep 24, 2012 1:55 am 
Harmlessness does no harm
User avatar

Joined: Tue Sep 14, 2004 8:37 pm
Posts: 3810
Location: Ferriday, LA, US
Alberth wrote:
Alisa wrote:
The Best Programming Languages for a Board Game is

"C++" and " java"
Why do you give that advice?

As an excuse to post signature-spam. Oops, not gonna happen this time, Senor Spambot! >:D

_________________
What most people don't understand about "enlightenment" is that it is not an end-goal; but where you find yourself just before taking a new "first step."


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group