Advertisement Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

181 Neutral

About BS-er

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I'm trying to conceive an approach for implementing a match server for a multiplayer game. I would use a MySQL table for user account information, likely for a minimal piracy protection. I'm wondering if it's sensible and efficient to use a MySQL table to manage active game sessions that players can join. It would likely need periodic timestamp updating to be done by the player PCs, and a cron job set up to occasionally go through the table and clean it up. This would be done on a fairly basic web hosting account (i.e. LunarPages for example). I don't have a dedicated server or VPS. Hence my motivation to use something like PHP. Since the game sessions are fairly dynamic, I wonder if there's a better way than using a MySQL table, or if that's even a big concern. Any ideas?
  2. I have the following function in the web page: function ShowHelp(tag) { if (tag == "") { tag = "empty"; } helpWindow = + ".htm", "GameHelp", "location=1, status=1, scrollbars=1, width=600, height=200"); helpWindow.moveTo(0,0); helpWindow.focus(); } Prior to Firefox 3.5 on XP, this function did all that was expected, ending with the popup having focus even if the "GameHelp" popup window was already opened. After upgrading to Firefox 3.5, the popup window "GameHelp" gains focus when it is first created, but will not gain focus if this function is called while the "GameHelp" window already exists. It does move to 0,0 and goes to the new URL, suggesting that this function is indeed being called. The prior behavior before 3.5 is what I require. If the popup already exists, set it to a possibly new URL and give it focus. However it no longer gains focus with Firefox 3.5. Is there something I can do differently that will give an existing "GameHelp" popup window focus? IE 8 seems to work "properly" in this regard.
  3. The thought is that you have a rendering pass over your terrain that is able to concisely render a detailed road at a desired width, twisting and weaving based on a set of coordinate data. Shader parameters would control the width and tiling of the road texture. A 1D texture might be used for the series UV coordinates, and the road texture would need to angle and turn with this array of points. I wonder if something like that has been conceived or tried before. It might be that it's a computational burdon. If anyone has heard of such a thing, I'd sure appreciate some details. I'm going to research it.
  4. BS-er

    Flocking and Pathfinding...

    I'll share with you what I'm thinking of doing for the same sort of thing. My plan is to add a taskLeader variable to indicate that in order to perform the current task, they need only follow that leader. To be considered for a leader, a neighboring unit would need to be performing the same task, and would need to be ahead relative to the target (dot product math etc.). My plan is to enact the leader-follower check upon proximity breach, but an initial check for nearby neighbors may help as well. You may not get all units to join the flock, but maybe quite a few. The AI would break out of its spell if the leader is too far away, or not ahead with respect to the goal, or the leader dies or changes its task etc.
  5. Thanks all for the helpful and constructive feedback. An image-of-the-day submission is a great suggestion. Quote:Original post by swiftcoder I like the sky, is that just a pre-rendered skybox? No the sky consists of a number of textured quads for the clouds. The editor I developed allows for placing, sizing, rotating, coloring and "alpha-ing" those quads fairly easily. The sky backdrop is simply a few quads for color transition that align with the view camera. This gives the effect of transitioning to a brighter horizon. Simple but effective I think. Quote:Original post by Servant of the Lord That game looks really impressive; how long have you been working on it? The video looks great. I've been working on the game's code for several years, most of it in my spare time back when I had a day job. A layoff in June '08 gave me more time, with the help of a severence package and a nice savings buffer. It's been a learning experience. Here are my major takeaway opinions (not that anyone asked): 1) On-line collaboration relationships are generally too fragile to sustain an ambitious game project. Real-world friendships and close physical proximity have great advantages. 2) Relevant professional/scholastic experience of all collaborators is critical if you're aiming for something polished. 3) Capable artist collaboration is in very short supply. An elaborate 3D game may prove too ambitious given the difficulties in finding artist collaboration. 4) A small team footprint (i.e 2D-Boy's 2-man programmer/artist) seems to be a better formula for success, in conjunction with realistic project goals. [Edited by - BS-er on January 3, 2009 4:19:47 PM]
  6. I was quite hoping for some feedback from the gamedev community, good bad or indifferent. I must admit that I don't provide much feedback myself, so I plan on addressing that in the future, in the spirit of doing unto others. I've also put together a gameplay video at: Thanks.
  7. BS-er

    Lua design help

    I developed my game to use scripting in this manner. The goal was to make it as simple as possible for non-programmer types, who seem to easily thrown when the needs become even a little intricate. The following would be a working script in my game: require "mission_interface" ----------------------------------------------------------- function mainRoutine() play("mission1/intro.ogg") wait(8) display("Welcome to this mission. Prepare for combat!") wait(20) local attacker1 = create("avheli01", "point_1", 2) attack(attacker1, _player()) awaitDeath(attacker1) display("Well done!") end thread.create(mainRoutine) ----------------------------------------------------------- function sideRoutine() while true do local patroller1 = create("avatv01", "point_2", 2) follow(patroller1, "path_1") awaitDeath(patroller1) end end thread.create(sideRoutine) I've tried to hide big words such as "coroutine" from my non-programming partners, instead creating a namespace/table called thread. I hide the fancier mechanisms, such as resuming, in a different module "mission_interface.lua". Using Pluto by Ben Sunshine-hill, I have it such that the state persists through a game save. If you want to have a look at my Lua code and approach, let me know.
  8. BS-er

    What do you think of Python?

    If raw speed is important to your application, and you're doing some tight loops and heavy math that need to run fast etc. then C++ has the general advantage. If easy extensibility is much more important, than Python seems like the winner. I've chosen Lua over Python so far because Lua has some no-brainer ease in embedding it in a C++ app, and it has coroutines built in. However Lua has its drawbacks as well. No point in trying to compare, I just wanted to bring up aspects of Python that have kept me from embracing it up to now. A variant of Python called stackess Python is supposed to be a reasonable choice for embedding, and has coroutines, but still seems like a bit more work than Lua to set up. Some Python zealots I know swear by Stackess Python though. Mixing C++ and embedded Stackless Python may give you a nice mix of what you need.
  9. An early beta of Machines, Anarchy and Destruction is now available at the following link: It weighs in at about 131 megabytes. This is an early beta release that was submitted to the 2009 IGF competition. It is in a playable (and hopefully fun) state. There is much more development to be done, so feedback is appreciated. We are looking for a modeller/artist at this time. See our post in the Help Wanted section: Here's a few screenshots:
  10. Well I didn't get quite what I want, but I guess I got what I need. setting up a call to debug.traceback from within the C function does give me the line number and module, along with a lot of extra stuff. It'll do :).
  11. Thanks for your help and responsiveness. It looks like the lua_error approach is a dead end as well. It's not the thing to use for non-intrusive warnings. It ends the coroutine thread unfortunately. The debug.trace doesn't look promising either, as a way to get information from within the C function that Lua is calling. Sure you can make a call to it in C, but all the setup required looks like a grand advanture that may or may not be for naught. It looks INTENDED for handling a call to a Lua function that generated an error, and like most of my other attempts, I think it would yield little if used outside of its intentions. Dang no elegant solution available by a longshot :(. I was hoping for a neat little function call.
  12. The documentation for lua_error says that calls to it don't return, which doesn't sound too friendly. Am I missing something? I don't want to hose up the works, just display a warning message.
  13. In my C functions that are callable from a Lua script, I'd like to include provisions for warnings that can be output to my game's console. I'd like to include as much as possible in such warnings, including the script line # and Lua module name where the call was made. I can't seem to find a way to do this. For example: int fn(lua_State* L) { if (lua_isnumber(L, 1)) { foo(lua_tonumber(L, 1)); } else { /* Warn that something other than a number was passed. */ } } Anyone know how to get the line number and module name at the point where Lua made the call to this C function? Thanks in advance for any help.
  14. I'm using OpenAL to stream ogg files to play music, voice dialog etc. On my system the volume is the same for mono or stereo, but on SOME systems (not all the same sound card/chip), the mono ogg file is barely audible. Stereo ogg files play back fine. Turning the mono file into a stereo file with the same content in each channel resultes in normal volume. I'm doubtful that the ogg aspect has anything to do with it. I make the following call for the source: alSourcei(mSource, AL_SOURCE_RELATIVE, true); and also set position, velocity to 0. I'm pretty sure this sets up the source so that it will play at constant volume regardless of what the listener position is. I wonder if I'm missing something. The OpenAL spec says that stereo sources are played without "3D spatialization", and maybe that's why the volume is always good for them. I wish there was a call that guaranteed the same thing for a mono source. I'm not 100% sure that setting AL_SOURCE_RELATIVE to true guarantees that. If anyone has encountered the same sort of issue I'd sure like to hear about it.
  15. I seem to have proper distance attenuation on Vista. I do know that stereo sound files are not attenuated (or aren't supposed to be). Could it be something as simple as that?
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!