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.

A little background info: I'm just about to graduate university with a software engineering degree. I have a fair amount of experience with more "serious" programming languages (C++/Java/C#), plenty of theoretical background, and good learning ability. I have minimal experience in web development as a whole (some JSP/JavaScript), and only very little with game engines (used Slick2D once to make a simple platformer, and had a brief introduction to 2D XNA).

I was recently approached by some people who have a game idea, and are looking for implementors. The game is a 2D turn-based strategy web game with a persistent world (meaning a DB backend would likely be required to store world state, user info, etc), and several UI interfaces.

I know this is a rather vague description, but based on this, which free game engine/framework/toolkit should I be looking at? Or at least, which technology (Flash/HTML5/JavaScript) would make it the easiest for me to develop this game?

share|improve this question
3  
The usual answer to this kind of question is "use whatever you're most familiar with and like." Also, I would avoid Flash/JavaScript, since I really benefit from strong compile-time checking and unit testing. –  ashes999 Oct 17 '11 at 0:56
1  
@ashes999 Flash ActionScript 3 (with FlashDevelop) does have strong compile-time checking and unit testing. Not sure what you are trying to say! But you are totally write about the kind of answer this question will get. –  Adam Harte Oct 17 '11 at 1:37
6  
@suszterpatt: If you're not familiar with anything, then you're probably not ready to do this. You might be able to code up the back-end, but the people who approached you would likely get things done faster by finding someone with familiarity with web development. –  Nicol Bolas Oct 17 '11 at 1:58
1  
@ashes999 FlexUnit is a very popular and mature unit-test framework for AS3. The AS2 days are long gone, and I don't know anyone who is sad about that :) AS3 has it's downsides, but it is a modern language with modern tools. –  Adam Harte Oct 17 '11 at 6:04
3  
You will learn over time that everyone has a "great game idea" and as you know a thing or two about computers, "can you implement it". Games are expensive things to make, either directly in terms of cash or indirectly in terms of your spare time. And don't fall for the "royalties" offer either. Most games don't make any profit. –  Skizz Oct 17 '11 at 13:56
show 2 more comments

closed as off-topic by Byte56 Nov 7 '13 at 23:33

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions that are about "which tech to use" are outside the scope of the site. For more information, see this meta post" – Byte56
If this question can be reworded to fit the rules in the help center, please edit the question.

4 Answers

If you have knowledge with C#, and wish to work with a strongly typed library that supports C# and .NET, try Unity3D

Pros:

  • Free for indie developers
  • Has a web plugin and ability to communicate with JavaScript
  • Can use C# and .NET libraries
  • Robust set of helper libraries - mathematical structures and functions, input helpers, shaders, camera, round-robin process execution

Cons:

  • native 2D support is spotty, has to use a third-party library (such as EZ-Sprites) for efficient 2D rendering (or roll your own using textured quads)
  • Requires a plugin for web deployment and is definitely not as widespread as Flash
  • scene files are stored in binary format, cannot be merged through source control (will be fixed in 3.5)
  • Lack of good source control for indie version (pro versions require assets server, which is a separate purchase...though 3.5 may provide better support)
  • Uses a Mono library which is about one step behind .NET 4, so it is lacking in many bells and whistles such as default variables and anonymous types (if you do use them)
share|improve this answer
add comment

One example, which is free and has a lot of documentation, is the 'ol Apache/PHP/MySQL combo.

A linux box with Apache, Mysql and PHP is almost a standard itself. I made a persistent turnbased RPG game with it and I learned a lot from it (specially database stuff but also a lot of do's and don'ts when it comes to the WEB).

Check it out Here if you want (it's in French but click 'S'enregistrer à Métamorphes !' to register). No one plays it any more and it is like 6-7 years old but it might give you the feeling of what you can build when you don't know very much about Web/DB etc.

share|improve this answer
add comment

I'd suggest Flash for the front-end, perhaps with a library such as Flixel or Flashpunk to facilitate the graphics. However you will need to get more specifications on the graphical style they want, as well as to clarify what "several UI interfaces" means. You can use FlashDevelop to work with Flash for free, and although you don't get all the vector graphic editing capability that the full Flash program gives you, it's perfectly adequate for ActionScript coding.

For the back end, something like Django would work if you wanted to use Python, or Ruby on Rails if you wanted to use Ruby. Personally I don't recommend PHP because it's a bit of an abomination of a language, but it's certainly up to the task. You can also stick with Java if you like, if you know how to access databases that way. All you need here is the ability to handle a variety of HTTP requests and to have them retrieve or store data accordingly. You probably would want to look at getting the data to and from the client in JSON format, as it's fairly compact and yet still human-readable, which means you can test features in a browser before hooking up your main client.

share|improve this answer
add comment

If you're doing this in your spare time, I would suggest trying to write the game using several different engines. That way, you will get a good feel for what each engine can / can't do.

As this is a turn based game, I would definitely start out with something having very simple graphics and probably done as static web pages and then put all your game code on the server, using .Net MVC perhaps. This means that you only have one application to worry about, the server code, and a local DB connection to manage.

Once you've got that working, you can then look into doing some client side processing - animations, fancier UI, etc. You can try out the various client systems you mention to see what works best for you.

share|improve this answer
add comment

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