Best Programming Language for Simple Multiplayer Sport Simulation Game

Started by
6 comments, last by mrlogicwins 7 years, 11 months ago

Hey all, new member here! I'm aiming to create a simple multiplayer sport management game with the following criteria:

  • No graphics (maybe a few images, but mostly text, tables and charts)
  • Playable on multiple computers live (multiplayer, through internet I guess, and requiring saving capabilities for continuous play through multiple sessions)
  • A decent amount of computations for the simulation of each game (I've already created most of the rules on excel, and have a rough working version on excel)

Main game features:

  • NHL (ice hockey) General Manager game; play multiple seasons over several game sessions with friends online
  • Simple hockey player quality stats (offense, defence, scoring, power, speed, goaltending, age, position.. maybe form & team morale but that's it!)
  • Simple simulation, with live text-based "highlights" (example: "Team 1 has puck, takes shot, saved" etc.)
  • Drafting and trading mechanism:
    • Drafting: available players list, each team takes turns (or bid in an auction system) to take players
    • Trading: can send trade proposals to other teams with various elements like certain players for other players, draft picks, salary (this is a salary cap system like the NHL) etc.
  • Some simple jersey display (simple like a square with 1 or 2 colors) for each team, but not necessary
  • Some modest AI in case of requiring a computer team to fill up the league

My background: Took some computer programming in college but it was 8 years ago (computer engineering courses, C++ etc.). So not a programmer, but have enough background to pick up a new language quicker than the average person. I use excel extensively for work.

Please let me know what programming language is best for me to learn to create this game. Alternatively, I could pay someone to do it for me, but I like to take this opportunity to learn something new! Ideally, the programming language is a common enough one that I can maybe utilize the knowledge for other ideas as well.

So far from online searches, I've heard Python is good, but also Java and HTML5 could do for a simple window-based online game.

Thanks in advance!

Advertisement

For a mainly online and text based game I'd go for some kind of web technology rather than a native application.

Personally I'd use HTML5 and code in Javascript which would be the path of least resistance. There are tons of other languages and technologies around but this is the default language for getting shit done on the web. Also you'd probably be able to speed up your development by leveraging other libraries that are available for Javascript (like displaying charts or spreadsheet style data).

Javascript/html5 isn't a bad (look into phaser.io) but python would be a good solutoin too.

Realize, you'll need 2 sides to this: a client (javascript/html5 would be good for this) and a server (javascript woudl not be good IMO, but python would).

IMO, since you'll need to write both sides, I'd just do them both in python.

Good luck and have fun!

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

This screams like a web application to me.

So for Client Side you will need really at the minimum JavaScript/HTML5 and some type of server side technology (storing your information in some kind of database, and maybe storing some other things on the server).

There are A LOT of JavaScript frameworks that can be used (I actually think there are too many frameworks), each one having their own pros and cons. And really for server side you could choose almost anything. You mentioned Python and Python would mostly definitely be able to do it. Though from what I gather about what you posted I can see this type of game fitting inside a node.js app with maybe using MongoDB as the database

For a web app PHP is a good choice (html and js is implied). Start with baby steps don't try to code a day straight before running the code and start with coding hangman to get an idea of how to do web development. And be prepared to google a lot and to write little code snippets to find out if a certain function does what you think it does.

If you do not want to get into complex server modification, I recommend going with a simple PHP / SQL environment. ( You also get to play with HTML5 and JavaScript )

For windows, a server can be set up in one click for free.

I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.

~ Ralph Waldo Emerson

Funny, after the last two comments, I guess I'm playing devils advocate. In my many years as a professional programmer, I can't say there are many "real world" (AKA, not Brainf*ck) programming languages that are popular while being truly awful. Frankly there are two, IMHO.

  • Objective C
  • PHP

PHP rose to prominence simply because it was free and part of a free stack of technologies (LAMP) at a time when alternatives like Coldfusion, JSP and ASP.NET, could have thousands of dollar price tags. PHP wasn't popular because it was good, simply because it was free. Now years later it only exists because of the massive amount of legacy code that has been written on top of PHP due to it's early traction. Point blank, it's still a terrible programming language.

In this day and age, there are so many good free options that are also powered by good or mostly good programming languages. Node/JavaScript are strong front runners, Ruby was super popular with Rails, although Node really bit into that developer base. Simply put, there are so many better choices to start with today than PHP... please, just dont.

Thanks for all the response everyone! I've been searching for tutorials online for the various suggestions here. Unfortunately I'm not any closer to figuring out which language I should get started with. So I thought maybe it's better if I mention specifically some of the things I need to accomplish and maybe you guys can narrow down the suggestion field :)

For now, this is what I'd like to get started with:

  • Build the foundational structure for the game:
    • Define a player to have certain skills and stats, and define the number range of the skills
    • Define a team to have a certain # of different type of players
    • Define the basis of the game simulation (what numbers from the players/teams are going to produce what stat based on what formula to produce a final game result)
    • Define other league elements like a Game, a Win, a Point, Standings Table, Playoff Series, etc.
    • Define drafting (how many players, how teams get to pick players to go to their teams)
  • Then I would run a lot of simulations of an individual game to refine the simulation formulas I've come up with and tested (very limited since it's so time consuming to manually do it on excel)
  • Then, for now, define some basic rules for the computer to manage the teams (draft players, and replace retired players with newly drafted ones)
  • And finally run full season simulations, which would include:
    • Randomize a set of players to start the game, given certain statistic parameters (like X% of great players, X% of good players, average, weak, and randomize their skill numbers based on the quality level)
    • Have a certain number of teams (8 for example) go thru and "draft" the players into their teams until full (simple decision, just grab the player with the highest overall skill number for the player slot that the team needs.. I can add more depth to the decision making later)
    • Have teams play a full season of games (14 games each), show results and a standings table as the season goes on (so for example, every time I press "continue" another set of games are played and results and updated tables are shown)
    • Top 4 teams to go playoffs and play 7 game series, and a final series to crown the champion
    • After that, retire the old players, generate a new set of young players and have the teams draft them to replace their retired ones
    • Continue to next season...
  • I would like to be able to run a lot of these and be able to see the overall results, maybe even download them into excel format that I can see averages etc, to further fine tune the game
  • After these, then I'd be looking into making it a multiplayer game where new features would be added (like trading) and would have to figure out how to make it a web application or a software on the computers that connects to a multilayer server, so real people can play it live

If I can do these with a javascript/html5 (like the node.js one) it's preferred so then It'd be easier to turn into the web application, but if not, then I'll have to do in Python or some of the other suggestions and later connect to html5 to do the client interface part, is that correct?

This topic is closed to new replies.

Advertisement