Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I've been working on a hex-based board game. Every time I make changes, especially changes that require redesigning the map, it takes a good chunk of time and money. It might be more efficient to write it as a video game, at least for designing it and showing off mock-ups. I've always wanted to learn a programming language anyways, so this gives me a good excuse.

Things that are important:

  • Hex grid movement, obviously
  • Hot-seat or online play - it's a multiplayer board game, thus a multiplayer video game
  • Keep track of what you might call "touchdowns" at a specific location, as well as HP and movement speed

AI would be unnecessary, so would sound effects or a matchmaking server. I just want to be able to show this to people.

Languages I've thought about learning before:

  • Flash, because it's ubiquitous
  • C seems to be an industry standard for video games
  • Javascript, because it seems to be the more powerful successor to flash
  • Python, because geeks always geek out about how awesome it is

If one of those languages would work well for my purposes, awesome! If there's a more efficient language to learn for this particular application though, I'm open to that.

share|improve this question

closed as not constructive by Byte56, Tetrad Apr 19 '12 at 16:55

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

8  
Java is not the successor of flash, C# is not industry standard, and geeks don't geek about how awesome python is, lol. –  Gustavo Maciel Apr 19 '12 at 5:27
    
@Gustavo-Gtoknu You're right; it's a simple enough scenario that I'm sure QBASIC would be "good enough". I'm trying to determine in which language I can most efficiently slap this demo together while picking up a basic understanding of a useful language along the way. –  Gumbz Apr 19 '12 at 5:31
    
And about the comment i did earlier, why not? –  Gustavo Maciel Apr 19 '12 at 5:33
1  
C is also not the industry standard in video games – as far as I know, that would be C++. –  Konrad Rudolph Apr 19 '12 at 12:26
2  
Which language to use is not a good fit for the site. Please see the FAQ –  Byte56 Apr 19 '12 at 14:22
show 1 more comment

5 Answers 5

up vote 8 down vote accepted

Things that are important:

Hex grid movement, obviously Hot-seat or online play - it's a multiplayer board game, thus a multiplayer video game Keep track of what you might call "touchdowns" at a specific location, as well as HP and movement speed AI would be unnecessary, so would sound effects or a matchmaking server. I just want to be able to show this to people.

None of these really factor into what language you might choose.

Flash, because it's ubiquitous.

This is true. There's also a lot work that's recently gone into making it easy to make Flash games (see Flixel and Flashpunk as examples).

Java, because it seems to be the more powerful successor to flash.

"Successor" is a strange term to use here. Java applets ultimately lost to Flash, which is subsequently becoming less cool in comparison to pure javascript.

C# seems to be an industry standard for video games.

"Industry standard" is a strange term to use here. When you're talking about large console and PC games ("AAA" games), C++ is actually the indsutry standard. If you're talking about Unity games, or tools development, or XNA, then C# is the standard. C# is a great language. However, the reasons I find it great are because of the advanced programming features it offers over Java. This may not be as useful to you.

I'm going to argue against using Unity for a couple of reasons:

  1. You need to purchase a tool to help you make 2D games.

  2. Learning to program with Unity's programming model will leave you with gaps in knowledge about how to structure a program from the top level. It revolves around writing scripts to create components that are then attached to objects. You are shielded from the main loop, which is an important concept to grasp in game programming. Unity's awesome and I love it, but I wouldn't recommend learning to program with it.

Python, because geeks always geek out about how awesome it is.

Python is wonderful (so is Ruby). You can get a lot done quickly, and making a basic 2D game with pygame is very straightforward. However, you run into problems if you want to distribute the game. There are tools, py2exe and py2app, to help you distribute, but I've never had either work 100% reliably.

If you don't intend to be able to distribute your game, then Python is a great way to go. Check out Learn Python the Hard Way and Invent Your Own Computer Games with Python. If you'd like to be able to have people easily download your game for playtesting or to just be able to set it up on a computer other than your own, I'd recommend Flash. C# and Java are nice, but if your primary goal is not to make a computer game you may find it more efficient to use Flash or Python.

Both Flash and Python can do online play, but there may be more readymade tools and libraries available for enabling online multiplayer in Flash games. Be aware that this is not a trivial problem to solve.

share|improve this answer
    
My perception of Java is clearly wrong based on what everyone has been saying; all I know is that a few years ago, everything seemed to be Flash, but now I'm seeing javascript mentioned and used a little bit more every few weeks. Thanks for educating this noob a bit! –  Gumbz Apr 19 '12 at 5:49
    
No problem :) Note that Java and Javascript are two completely different things. –  michael.bartnett Apr 19 '12 at 5:59
9  
@Gumbz: Java is to Javascript as Car is to Caramel. :) –  George Duckett Apr 19 '12 at 7:20
    
Right then. Editing the OP to stop saying Java. I think I'll go with Python. It sounds more excitingly underground and cutting-edge, and could be useful for even non-gaming endeavors. I'd go with Flash if I was trying to put my game out on the web for more exposure and ad revenue. Thanks all! –  Gumbz Apr 19 '12 at 8:04
    
Python can definitely be useful for a lot of tasks. If you want to distribute, PyInstaller is an alternative to py2exe and has always worked perfectly for me. –  Leo Apr 19 '12 at 9:11
show 1 more comment

Making changes to a video game will be neither faster nor cheaper (if you assign any value to time) than the same changes made to a board game.

Design changes are much, much faster and easier to make for physical games (board, card, etc) than for video games. So much so that those of us who work on video games professionally will usually try to prototype using boards or cards whenever we can, simply because that's so much faster and more efficient for working out what designs work and what designs don't.

If you want to learn a programming language and make a video game, that's great. It's a tremendously broadening experience and you may find it to be uniquely challenging and rewarding, the way that I and many others do. I can't recommend it highly enough.

But it will not be faster and cheaper.

So if fast and cheap is your goal, my advice is to stick with the physical boards for prototyping.

share|improve this answer
    
+1 Damn good advice –  Jonathan Hobbs Apr 19 '12 at 12:48
add comment

If you just want to have easy editing and testing, I'd suggest Unity with C#. You can create your board either by hand or code and see and test it simply by pressing play in the editor. Unity is easy to learn and lots of tutorials around.

share|improve this answer
add comment

I wouldn't start from the programming language, but rather from the engine and then find a language that support it. Unity, as suggested, is a good option, but if you're just looking for a mock-up maybe a 2d engine might be simpler and more up your aisle. Seems like this question might help you.

And even if you wan to begin from languages, I'd go with c#, maybe Java. They're both strongly object-oriented and so very suitable for modular construction.

share|improve this answer
    
Thanks for the perspective. I've done some video game modding, but never video game creation, yet - I'll do some wikipedia-ing on "game engines" and then check out Unity and that other question for sure! –  Gumbz Apr 19 '12 at 5:34
add comment

JavaScript has many flaws, but it has many advantages for what you're trying to do:

  1. There's plenty of excellent documentation resources.

  2. There's plenty of very good libraries.

  3. Also plenty of tools (Chrome's debugger, FireBug, WebDeveloper extension, ...)

  4. It's cross platform and works in the browser, obviously.

  5. Supports 3D with recent browsers

  6. You can see the result of what you do immediately, and share it just as easily.

  7. If you want to make a networked game, it's easy with node.js

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.