[web] Creating a web based strategy game

Started by
5 comments, last by SimonForsman 12 years, 4 months ago
Hi all!
This is my first post here on this community so I hope you will treat me nice tongue.gif

I'm a programmer and has very good knowledge in C# and SQL, but now on my spare time i was thinking of creating a game. I have created some small games in XNA before but this time I want to create a web based game forcing me to learn more programing languages.

I was thinking about using HTML and javascript, asp.net and mssql. I got myself all applications and servers needed for this task.

I have started (using pen and paper) to draw out the outlines for my game and how it will work basically.
My knowledge in html is about 3 on a scale to 10 and in javascript 2 on a scale to 10 but that is not something that will stop me (Google is my best friend biggrin.gif)

So now to my questions:

I was planning on creating a simple strategic game. I know there are lots of these types of games already but this is meant as a learning scenario for me.
The game itself should be about gather recources over time, buildning armies, attacking other players and so on, but not realtime game.

I want it to be based on time, let me show you an example:

The user should gain resource over time, lets say 10 gold each 15 min for example.
The player should also gain soldiers over time.

When the player choose to attack anther player, the attack will not be imminent. It should be delayed for let say 2 hrs.

So my question here is how will i handle this in code. I mean, the user will probably not sit and wait with the browser open until the attack, so this needs to be handled elswhere but how?

(1) Do i need to build some type of server application that pools the db to see if an attack should be executed or how should i approach this?

(2) How can i trigger events based on the time? For instance the resources, it should add resoucers to the player each xx min. Its easy when the user goes online i can calculate the amount by finding out how long the user been offline and then add the right amount. But when the user is online how will i add the resources? Using java
or what?

So these are my first question but more will come, rest assure tongue.gif

// Mjurfen
Advertisement
Hey

I been looking thought your post and they are realy good questions to be asking, I am not sure of the anwser when it comes to asp.net, All i know is that using php you can create this timing effect using whats called a CRON job, this is a job done by the server anytime you set it to, So for example you could set it to go every min, and make it so that in your database you have min and hours, so every min the mins will + 1 and every 60mins the hours will plus 1.

This would make it so that you can exacute any command you wish to after any amount of time.

I have created textbased games using PHP, MySQL, HTML, Javascript, JQuery, AJax

Please feel free to email with any other questions jamienicholls1992@live.co.uk

Hope this helps

Hey

I been looking thought your post and they are realy good questions to be asking, I am not sure of the anwser when it comes to asp.net, All i know is that using php you can create this timing effect using whats called a CRON job, this is a job done by the server anytime you set it to, So for example you could set it to go every min, and make it so that in your database you have min and hours, so every min the mins will + 1 and every 60mins the hours will plus 1.

This would make it so that you can exacute any command you wish to after any amount of time.

I have created textbased games using PHP, MySQL, HTML, Javascript, JQuery, AJax

Please feel free to email with any other questions jamienicholls1992@live.co.uk

Hope this helps



Hi and thank you for your reply!
Well it's a start, i googled the CRON and added "ASP.NET" and found this article here. Maybe thats what I'm looking for....

I will most likely keep your mail adress for further assistance if you dont mind!

I have noticed that a lot of people are using PHP, sadly though I have ZERO experience with PHP sad.gifsad.gif tongue.gif

PHP is easy to use and i dont mind helping, i start PHP 2 years ago, i dont say i am expiranced yet, but i can create a text based game, for example

<?PHP
$MySQL = mysql_connect('localhost', 'user', 'pass');
$MySQL = mysql_select_db("name", $MySQL);
if(!$MySQL){die(mysql_error());}
?>


That is all you need to connect to a mysql database and then to do a query it mysql_query("SELECT * FROM user WHERE id='1'");

Yea keep the email and email me if you want help with anything
Sounds like it's a classic "tick based" web game.

Yes, you probably do need to have some process which periodically processes the "ticks". In Unix this would be a "cron" job, however, it is also possible to run such jobs in MSWindows from the event scheduler or by some other means (at a push you can have a console app which just does a lot of sleeping between ticks).

The normal architecture for such a game is:

* Web UI reports the "current state" of the game, and allows players to register an "intention" to do something the following tick, maybe the amount of resources to spend on various tasks, trade with or attack another player etc.
* "Tick processor" which processes all the "intentions" each tick, and adds resources etc (e.g. resources acquired by mining, farming), handles battles, character movement, etc, and updates all the "current state" tables

Which is pretty straightforward. You just have two sets of tables "state" and "intention".

There are a few tricky bits, such as how to prevent problems where players are trying to view / update things during the "tick" - they could simply be temporarily locked out.

The game design (and UI design, graphics design etc) is likely to be much more complicated than the actual technical basis for the way such games work. They're generally pretty fun and attract a decent niche audience if done well.
Reading this thread helps me understand how to use PHP, MySQL, HTML more. :) Cool!
strategic web design

Sounds like it's a classic "tick based" web game.

Yes, you probably do need to have some process which periodically processes the "ticks". In Unix this would be a "cron" job, however, it is also possible to run such jobs in MSWindows from the event scheduler or by some other means (at a push you can have a console app which just does a lot of sleeping between ticks).

The normal architecture for such a game is:

* Web UI reports the "current state" of the game, and allows players to register an "intention" to do something the following tick, maybe the amount of resources to spend on various tasks, trade with or attack another player etc.
* "Tick processor" which processes all the "intentions" each tick, and adds resources etc (e.g. resources acquired by mining, farming), handles battles, character movement, etc, and updates all the "current state" tables

Which is pretty straightforward. You just have two sets of tables "state" and "intention".

There are a few tricky bits, such as how to prevent problems where players are trying to view / update things during the "tick" - they could simply be temporarily locked out.

The game design (and UI design, graphics design etc) is likely to be much more complicated than the actual technical basis for the way such games work. They're generally pretty fun and attract a decent niche audience if done well.


You don't actually need to update at a fixed rate, you could also have the php scripts requested by the users trigger the update logic if necessary, (This however will increase page load time for the first visit and you do need a locking mechanism to prevent multiple visitors from triggering updates at the same time.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

This topic is closed to new replies.

Advertisement