|


I came across a good question and
answer on a forum ( experts-exchange.com ) about how
OGame works.
Question:
" I
would like to know how was OGame
created, what web language, database and how to make something
similar to work, just the concept of how does
OGame create the users, fight
against other players, etc.
matt
"

Answer:
" I don't know much
about this game as I just browsed their site upon reading this
question.
However, to answer your question to pure browser based
multiplayer games you can do a number of things! I'll address
the concepts in order of complexity in implementation.
You asked as to what web language. This is a simple question
with a simple answer. To do real time interaction you will need
a balance of Client side processing via JavaScript or ActiveX
implementing something we all know and love called AJAX. ((Each
of these things you will need to further research on your own or
ask a question dedicated to the topic and I can help you
further. But for a 125 pt question I cannot explain each topic
or I'll write a book)) Those languages are your client side
power house! That will be what does all client side rendering,
real time animations, and
server response parsing / display.
Secondly to do any real time movement / interaction you do NOT
want to be obsessing over Database transactions. Think... Every
time you do a single action you have to check if the DB table
you want to update is locked, then lock it and make your update
finally unlocking the table and gathering any new info you need.
This is a terrible way of doing interactive real time browser
games. You will want to use a cool little feature called
Application Cache. Read away about what it is if you feel the
urge. The simple idea behind application cache is to store
things on the server so every session can access the same memory
bank. You can offsite cache as well but you lose many of the
benefits you gain from using cache. Just remember... when you
go out to do other transactions you are eating up a lot of
processor time as well as blocking for
a response... Can we say LAG! Server memory is the only way to
do it and do it well.
*thinks* How it was created... duh... lots of time! Many
people underestimate the work that goes into making even the
simplest of online browser based games. There was much blood,
tears, and sweat poured into this game. A lot of research, and
a lot of code! It takes a very diverse coder to be able to pull
off highly interactive games... You need to understand load
balancing, game play balancing, client side scripting, server
side scripting, database transactions and their cost, and
storage mediums. Personally I reccomend C# and Javascript for
any form of interactive stuff like what I see regarding
OGame.
As for the logic... if OGame has
AI's you need to think about fuzzy logic, determinanant and
indenterminant logic as well as personality traits... AI's best
friend in gaming is random numbers, stat's and chance. Remember
that! As for player interaction the idea falls back to
application cache... A player makes a move against another
player that is stored in app cache... then the client of each
player polls the cache to figure out what is up... wala!
Message passing... think about it as an async enviroment where
you have parallel threads and you need to pass messages back and
forth... Simple concept... intermediate to implement.
Here is the top level set up of any browser game.
Long term storage is the back bone of the entire game. After a
session time out anything regarding that user is removed from
App. Cache and stored back into the database. Same when a user
logs in... anything in the database is loaded into application
cache and they can start playing. App. cache is the main driver
for any information passing in the game.
AJAX is what allows the browser to
communicate with the server without that annoying post back that
you get in 99% of web pages out there. AJAX is a method of
transporting XML messages from a browser to the server and the
server to reply all while the user still maintains control of
the same browser window! Amazing don'tcha think?!
As for everything else of the game... that is 100% imagination.
The developers and storyboard geniuses sat around for days on
end comming up with a concept for a game more than likely before
a single line of code was written. Then after they knew what
they wanted to do... they started getting their fingers dirty
coding away. But the programming concepts behind Multiplayer
games is a simple one... it's only threaded processing! All
other concepts are purely up to the imagination of the author(s)
Do you have any more pointed questions or were you just looking
for a global... how do you do this?!
~Aqua "
OGAMEBLOG.COM works best
with Firefox,
& screen resolution 1280x1024
|