ann: blender game server

Compiling, libraries, modules, coding guidelines and porting

Moderators: jesterKing, stiv

Post Reply
verence
Posts: 33
Joined: Thu Nov 07, 2002 12:42 pm

ann: blender game server

Post by verence »

i did start a discussion in the python forum, but it died just a minute before it went interesting (blender_owl, where are you? 8) ). but the topic was too cool to leave it behind, so we started our developement on a game server. this far, we got the server logic alrighty then, but we are no gamers! so, what we need is coorporation from game developers and gamers to develop an easy-to-handly protocol that fits the blender needs.

at the moment, the server is able to receive and to send messages (you can listen to them with the MessageSensor and you can send them with the MessageActuator). but this is quite boring. Because there is a python module that does the communication via file streams (blender has some problems handling sockets), why not bring some logic into it and develop a python API that makes the creation of network games easy?

the only problem is, we have not that much experience with that. so we ask for ideas, what a gameserver should be able to, the technical problems may be solved (they will be solved, or a coder is not a coder).

verence

ps: today licensing issues seems to be important. all software will be released under the "lesser gnu public license".

stiv
Posts: 0
Joined: Tue Aug 05, 2003 7:58 am
Location: 45N 86W

Re: ann: blender game server

Post by stiv »

verence wrote:...blender has some problems handling sockets...
Socket problems? Can you elaborate?

verence
Posts: 33
Joined: Thu Nov 07, 2002 12:42 pm

Post by verence »

i read in the forums that blender has problems with sockets when you use them from a python script. actually, i did not try, but i also think it is more secure to have a layer (the files) inbetween.

verence

mtr
Posts: 0
Joined: Tue Jul 29, 2003 4:40 pm

Yippee!!!

Post by mtr »

This is exactly the sort of thing I want to work on!

Whats's been going on? Where is it going? How can I help?


:D

I'm trying to get the ActiveX thingy working, (without Physics), and really, really want a network capability!!

Martin

verence
Posts: 33
Joined: Thu Nov 07, 2002 12:42 pm

Re: Yippee!!!

Post by verence »

mtr wrote: Whats's been going on? Where is it going? How can I help?
i hope i get an alpha version ready in 1-2 weeks and then i will register this as a project on projects.blender.org (i don't do it now, 'cause i dislike registering a project without any code to upload :D ) .

as i see it, the core server functions aren't that difficult, but there should be a protocol for that (that may be used also in a non-gaming context). it needs a user and game management (registering games on the server, registering users for the games etc.) and for that a user interface (web / fat client ?).

my aim is to get a robust prototype finished asap and to test it heavily so that the next step can be a server that can handle massive multiplayer games.

the server is written in java (no fear, not that j2ee stuff, just plain java) because it's my native language :D , it runs on every platform and the http/tcp functions are fast and safe. and also because i want to learn more about connection pooling and all that.

the client is a python module for blender (i hope there will be a time where the game blender scripts can do an import os, but if not, there are workarounds).

a normal blender script (alt+p) with a gui to configure the connection and to administer the server side of that game sounds good to me.

and last but NOT least: the client side must always work with game executables. imho the game engine can only exist when you can create standalone games with it and make real games for the real gamers. i wish it will become a possibility for game developers to create hq games due a graphical interface (as it does 8) ).

ok, these are my ideas/plans for now, if you'd like to help, be sure, i'll need it :D , also on the conceptual side. you can send me email to

martin[at]elektrolite.com

greets,
verence

ps: cool name u have 8)

leinad13
Posts: 192
Joined: Wed Oct 16, 2002 5:35 pm

Post by leinad13 »

Right this sounds great, im a game user so i would love to help test your project. Have you got anyone developing games yet? I know a little programming so i wouldnt mind helping you iron out some bug if need be.

Sounds great by the way.
-------------
Over to you boffins

L!13

verence
Posts: 33
Joined: Thu Nov 07, 2002 12:42 pm

Post by verence »

leinad13 wrote:Right this sounds great, im a game user so i would love to help test your project. Have you got anyone developing games yet? I know a little programming so i wouldnt mind helping you iron out some bug if need be.

Sounds great by the way.
i played a bit with the 2.25 game engine but at the moment i'm more interested in technical things, so all game developement this far is a mario-like character beeing able to walk/jump as a testing environment. it would be cool when you could post or send some thoughts about the client side, cause at the moment the api is very (too) low level (the 'listener' is connected to an always actuator that triggers it, the sender is a function that uses a message actuator to get the message and then sends it to the server, that's all at the moment). we have to figure out what level the api should target (just messages or more high-level, like shoot_at(remote_player) ).

another thing we need are ideas about features the server could additionally have, like saving highscores/current game, text chat, object management (diamonds, poison items etc...). a good thing about developing in client/server environemts is that features are easy to implement, cause the interfaces are defined, all you need is an addition to the protocol and a client lib/class/function that uses it.

btw, while playing with the game engine i found out that (for me) it would be best to use python code like logic bricks (a functional piece that you configure and involve in the event pipeline, like actuators). what do you think would be a good technique for achieving that? so far, i connect actuators to the script (that the script can use them) and, beside the sensors that trigger the script i use dummy sensors for configuration (ie a property sensor to make a key/value pair configurable). better ideas?

greets,
verence

ps: i will open a project on blender, when that fails (no, it won't, will it :D ) on sourceforge, when the code is alpha-releasable., which it is not at the moment.

pps:leinad13, what system do you run?

leinad13
Posts: 192
Joined: Wed Oct 16, 2002 5:35 pm

Post by leinad13 »

System do u mean OS: Windows, or my System: 2.3 P4, 760 RAM, 128 DDR GeForce 4 4200?

I not too clued up on the game engine btw. What have you done so far, used a python script as a host?

I would like more info about what you are doing, if you would like any help or something then: preferably use this forum or mail me.

I might miss your mail cos i get alot of spam.
-------------
Over to you boffins

L!13

verence
Posts: 33
Joined: Thu Nov 07, 2002 12:42 pm

Post by verence »

leinad13 wrote:System do u mean OS: Windows, or my System: 2.3 P4, 760 RAM, 128 DDR GeForce 4 4200?
i mean both, so we cann add this configuration to the testing db. when all works on your system, we have a place where to put a big green dot :-)
leinad13 wrote: I not too clued up on the game engine btw. What have you done so far, used a python script as a host?
i mostly use modules and scripts just for calling methods (hooks), it's more easy and forces reusable development. all i did where experiments, to know what are the borders. one thing i noticed: the collision detection does not work most of the time, it is easy to walk through walls. i explored howto do walk/movement cycles, inventories and all that, but without a game in mind it is hard to do serious things. so we forced on developing modules to provide some concepts/APIs for game developers. there are two projects we're working at: a layout based gui module (to make GUIs [not for the game engine, just for normal "alt+p" scripts] more easy to create, with panels and stat stuff, withoud coordinates), and the game server.
leinad13 wrote: I would like more info about what you are doing, if you would like any help or something then: preferably use this forum or mail me.
asap we'll make some stuff available (a) releasable, after that it would be more clear :-)

greets, verence

mtr
Posts: 0
Joined: Tue Jul 29, 2003 4:40 pm

Still excited ...

Post by mtr »

... and I'll contact you Real Soon Now. I'd love to share ideas and let you know what I'm up to.

I've got your email, I'm on mtr [at] cyber[hyphen]dog.freeserve.co.uk

The hypen [-] is a pain but someone got MY name before I did!

I'm doing some source code analysis on the gamengine at the moment, so I can understand how it's put together - ie, how to update the Python parts.

Martin

mtr
Posts: 0
Joined: Tue Jul 29, 2003 4:40 pm

Can import os.

Post by mtr »

Something you said earlier, about looking forward to a time when the gameplayer can do import os ...

Thr gameplayer has always been able to import anything it feels like .. it's the plugin that can't.

The plugin deliberately has the open() function removed and import crippled to only import internal modules.

Within the gamer player, I can even import ODBC and access a database without problems.

It's also easy to change the one line to enable the plugin, if you want .. just ask for details. (Or search GPG_Application.cpp for psl_Lowest).

Martin

mtr at cyber-dog.freeserve.co.uk

wiseman303
Posts: 12
Joined: Wed Dec 04, 2002 8:14 am

Post by wiseman303 »

There's no limits to importing modules in game blender, assuming you have your python path set.

If you don't have your python path set, then you can only import modules in the current working directory.

Blender_owl
Posts: 17
Joined: Tue Oct 22, 2002 10:35 pm

Post by Blender_owl »

When do we start? Sorry for the late response

Post Reply