|
veco posted:It's possible that there's a bug...or three. I haven't messed with it for a while, too busy with other stuff. I just saw this thread and thought it might be handy for others using XNA and needing to look at pathfinding. Haha I'm already testing your code with my prototype. You seem to have misspelled "diagonal" though.
|
# ? Oct 10, 2009 18:42 |
|
|
# ? May 19, 2024 16:21 |
|
Broken Knees Club posted:Haha I'm already testing your code with my prototype. Yeah, I caught that after looking at the screenshot with the apparent bugs. In my defense it was a late night.
|
# ? Oct 10, 2009 18:48 |
|
So I think I'm going to pick up the O'Reilley XNA book, along with the C# book recommended earlier, has anyone used it? Or should I got with their C# book and go to someone else about XNA itself?
|
# ? Oct 10, 2009 23:25 |
|
BizarroAzrael posted:So I think I'm going to pick up the O'Reilley XNA book, along with the C# book recommended earlier, has anyone used it? Or should I got with their C# book and go to someone else about XNA itself? Get the C# book, learn XNA by doing. Even though I have that O'Reilly book and consider it a pretty good starting point, there is no real reason to buy it. All of that knowledge and then some can be found on the Internet, for free, usually in greater detail with plenty of discussions and stupid newbies getting things wrong.
|
# ? Oct 11, 2009 14:50 |
|
Are there any other goons who are with me here when I recommend not using any game engines but writing your own from scratch?
|
# ? Oct 11, 2009 23:21 |
|
Sigvatr posted:Are there any other goons who are with me here when I recommend not using any game engines but writing your own from scratch? Writing an engine from scratch can be a fantastic learning experience. In my experience, CS majors don't write enough nontrivial programs in school, so building something up from first principles can be very educational from a software engineering perspective. Also, I think it's a good thing to implement a camera system and learn a bit about scene management in a toy engine, since using someone else's will guarantee that all this is abstracted away from you. That said, it's unlikely that what you write will be more technically interesting than what you could get by linking against Ogre or Torque, so there's definitely a good reason to not re-invent the wheel. If you're intending for your product to actually reach market, then you certainly don't want to spend untold hours building the framework that other engines basically give you.
|
# ? Oct 12, 2009 00:23 |
|
If you want to make a game, it's dumb to write your own game engine unless you have a good reason (e.g. you want to pioneer 4D rendering). If you want to make a game engine, well then there you go.
|
# ? Oct 12, 2009 01:25 |
|
Well I'm writing an engine for my basically because it NEEDS it. I hosed around with 3 different game engines until I realized that what I needed was a scratch built engine. That being said, it isn't particularly difficult, just time consuming. I'm not trying to reinvent the wheel, it's just that I am really fussy about how all the engines I have used so far tend to handle things. Sigvatr fucked around with this message at 03:09 on Oct 12, 2009 |
# ? Oct 12, 2009 03:07 |
|
Sigvatr posted:Well I'm writing an engine for my basically because it NEEDS it. I hosed around with 3 different game engines until I realized that what I needed was a scratch built engine. Making a engine isn't that hard, but making a good engine most definitely is. If you've made a couple of previous small games using other engines, then sure, go ahead. If you haven't though, stop what you're doing. You're going to repeat all the mistakes that most other engines did and subsequently solved, and if your goal is to actually complete this game, you just reduced the chances of that happening significantly. What you're describing is pretty much spot on the "Not Invented Here"-syndrome that plagues much of the software industry. Often ending up with not only reinventing the wheel, but never finishing it and instead just ending up with two-three really efficient spokes. Getting used to working with other people's code is a learning experience in itself, which is probably more valuable than learning what kind of space partitioning scheme works best for your scene management. Vinterstum fucked around with this message at 07:32 on Oct 12, 2009 |
# ? Oct 12, 2009 07:27 |
|
Making a game engine is a great way to learn things, and a terrible way to complete anything. Especially if it's a 3D engine in which case you'll be stuck with the nightmare of getting content.
|
# ? Oct 12, 2009 11:54 |
|
On the topic of engines, has anyone encountered a 2d XNA engine that did not schizophrenically abstract away everything and then provide no sources or means to extend the provided functionality without resorting to Bad Things? FlatRedBall is not too bad, but some classes actually manage to make things more difficult without adding to functionality and the lack of in-depth documentation means I have no idea whether or not those classes can be replaced. My scrub programming skills don't help one bit either. tldr:
|
# ? Oct 12, 2009 14:46 |
|
I'm also looking for a game engine recommendation. I'm looking for a good, preferably cross-platform, and preferably free engine that can be used for 2D or 2.5D games (and in this case, 2.5D means a 2D game rendered with 3D graphics, to some extent). I've already explored XNA, and the problem is that it's not powerful enough for what I want to do. Essentially, I'm looking to make a game with music synchronization of user events, much like Rez or Lumines, and unfortunately XNA doesn't have enough low level control of audio to do what I need. My guess is I might just need to resort to DirectX, or if I want cross platform OpenGL and some cross-platform audio library (like OpenAL maybe?), but having a game engine that simplifies things would be awesome. Any good suggestions?
|
# ? Oct 14, 2009 05:15 |
|
GuyGizmo posted:I'm also looking for a game engine recommendation. Well, none of these are 'engines', but if you want cross platform at least aim for SDL since it wraps OpenGL and OpenAL (among other things). Pyglet might also be a good choice if you want to play around in Python.
|
# ? Oct 14, 2009 14:39 |
|
I'd should have mentioned that I'd love to work in Python if possible. I'll take a look at Pyglet or whichever game libraries I can find. What sort of performance can I expect out of Python? The sort of game I want to make wouldn't be any slouch, since I'd be interested in implementing lots of complex backgrounds, animated characters, and what have you. They might all be sprites since I haven't decided on the 2D vs 2.5D thing yet, but one of my concerns with Python was that I wouldn't be able to get enough speed out of it unless it were running on an adequately fast system.
|
# ? Oct 14, 2009 15:52 |
|
GuyGizmo posted:I'm also looking for a game engine recommendation. Take a look at OpenTK. http://opentk.org/project/opentk It has direct bindings to OpenAL, and is probably the best OpenGL wrapper available.
|
# ? Oct 14, 2009 16:32 |
|
PnP Bios posted:Take a look at OpenTK. http://opentk.org/project/opentk
|
# ? Oct 14, 2009 16:41 |
|
I'm hoping someone with more experience with larger projects could help me, I'm looking to make a sidescrolling beat-em-up a la early '90s Konami arcade games. I'm looking at either Flash, which I'm familiar-ish with, but might not be completely ideal, or at C# and XNA. I can probably do it quicker in Flash, and I suspect all the sprite animation will be easier, though I'm thinking perhaps it might need to be C# if I want to do it right. Maybe I'm over-thinking it though, I'm just keen to start a project in C# for portfolio purposes.
|
# ? Oct 14, 2009 21:18 |
|
I made something! I've been working on the level editor for a small multiplayer game I'm slowly piecing together. I'm slowly working on a zelda 3-like game rendered in opengl. The way the engine is setup is pretty zany, basically there are a few modules that get linked to the executable that runs Stackless Python, I'm using wxpython, OpenGL, CEGUI and stackless python to put this all together and it's coming along nicely. I can make a meager attempt at asking any questions. The hope is to be able to support ~50 players in a realtime mini-rpg sort of adventure setup. The FPS is half of what it normally is since it's a debug compile.
|
# ? Oct 19, 2009 08:57 |
|
Mido posted:I made something! I've been working on the level editor for a small multiplayer game I'm slowly piecing together. That's a nice tileset. Your own work? I'd be interesting in your thoughts on CEGUI. I've used it and hated it. While it's very flexible and shouldn't require much code to make do novel things I find it instead requires 50 times as much dense XML using obscure attributes. And the default skin is ugly as sin. I would also like to do a quick 'was that a dream' check. I'm sure a couple of months ago I stumbled across a new SVG -> SDL_Surface renderer with no major dependencies and high quality output. Now I can't find head or tail of it, only a lovely old library from years ago and some guy who was happy to link against Cairo. Am I going mad? Did I dream it?
|
# ? Oct 20, 2009 19:21 |
|
danishcake posted:That's a nice tileset. Your own work? The tileset was gifted to me from a good friend who does amaaazing pixel art. My own talents are not bad but his are better. CEGUI is an interesting topic. Everything you have said is correct about it, it's stupid, most people hate it, the looknfeel files are atrocious and falgard is neat but goddamn Eddy make an editor or something! CEGUI also receives criticism for it's many singletons. That said, after taking the time to really get a grasp of the nitty gritty when it comes to making looknfeel files and editing imagesets, it's not so bad. I would say the biggest flaw CEGUI has, is it's default distribution. The default distribution has no "good" default looknfeel file. Taharezlook is hideous, and Vanilla is TOO simple. A very basic template with an imageset item for each corner, edge and center brush, along with a basic titlebar would suit many people just fine and be easy enough to customize, since that's all many people need. I sat down and figured out the looknfeel format, and after a few hours I managed to make a few essential looknfeel widgets. With what I learned, I can safely say that the looknfeel files are really powerful, but the overall apprehension for CEGUI mostly comes from the lack of a good example. EDIT: In the editor screenshot I posted, the game/level is rendering inside of an overloaded CEGUI Window, and I push the opengl states and set up ortho and the viewport to reflect the pixel size of the CEGUI widget. By doing this, the game rendering occurs as if it was a widget, allowing you to access it from python as a GUI element and you can render things behind and infront of it. a cyberpunk goose fucked around with this message at 01:49 on Oct 21, 2009 |
# ? Oct 21, 2009 01:33 |
|
I'm trying to write a simple hitbox-based collision detection routine, and I'm running up against a sticky question. What do I do if an object with a small hitbox moves many times its hitbox size in a single frame? If I don't do some interpolation and testing between the two positions, I could easily end up with a situation where a projectile moves through a target it should have hit, like on those Galaga machines you sometimes saw that were hacked to double the player's missile speed. Problem is, I can't come up with a good algorithm for doing so. What's a standard way of dealing with this problem? (FYI, my game's target updates-per-sec is 60)
|
# ? Oct 21, 2009 05:21 |
|
Place restrictions on minimum object size and maximum velocity or google continuous collision detection
|
# ? Oct 21, 2009 09:11 |
|
Ludicrous Gibs! posted:I'm trying to write a simple hitbox-based collision detection routine, and I'm running up against a sticky question. What do I do if an object with a small hitbox moves many times its hitbox size in a single frame? If I don't do some interpolation and testing between the two positions, I could easily end up with a situation where a projectile moves through a target it should have hit, like on those Galaga machines you sometimes saw that were hacked to double the player's missile speed. <Pedantic Tangent> This is an intrinsic problem with discrete updates. The ideal solution is to intersect a "sweep" of the movement, corresponding to an volume approximating the space the hitbox moves through over that timestep. So, an elongated rectangle, in this case. Intersecting all the sweeps against one another gives you all the potential hits during that timestep; once you have the potential intesections, you can then look at the Position+t*Velocity calculations for each pair of intersecting objects to see if they actually intersect (are at the same T-value where the potential intersection occurs). The primary problem here is deciding what happens when you actually have a collision. Since a collision event likely changes the physical properties of the system (or at least a set of objects within it), you then need to recalculate potential intersections from that point onward again. You can do clever things where you don't re-compute motions for objects that could not possibly be affected by a collision, rolling back parts of the world if an invalidating collision occurs after the fact, or a a variety of other sophisticated techniques. </Pedantic Tangent> The simplest/brute-force solution is to just have several sub-updates per frame. You could also conceivably separate small objects into a group that is updated at a higher frequency.
|
# ? Oct 21, 2009 13:37 |
|
Back on the subject of game engines, how well does Python or any of the free Python game engines work? Python being what it is, I suspect that any functionality I might need will be there, like bindings for OpenGL and OpenAL or whathaveyou. But in practice does it tend to be speedy enough to handle a 2D game with sophisticated graphics?
|
# ? Oct 22, 2009 23:26 |
|
What is the standard for 3d Models? Or do most engines just use their own internal format?
|
# ? Oct 23, 2009 05:59 |
|
GuyGizmo posted:Back on the subject of game engines, how well does Python or any of the free Python game engines work? Python being what it is, I suspect that any functionality I might need will be there, like bindings for OpenGL and OpenAL or whathaveyou. But in practice does it tend to be speedy enough to handle a 2D game with sophisticated graphics? I recommend using pygame and rabbyt and/or pyglet. The animator classes in rabbyt are genius and make it ridiculously easy to get a good looking game. For 2d games I wouldn't bother using OpenGL or anything like that all and just use rabbyt sprites. That's up to you though!
|
# ? Oct 23, 2009 06:45 |
|
I've been gaming my whole life and programming for a few years now and would like to chat with people about game development. Every aspect is interesting to me, from programming to art to level design. Drop me a line: AIM: flywhiteguy972 GChat: joeguitar / at^ gmail
|
# ? Oct 24, 2009 03:53 |
|
UberJumper posted:What is the standard for 3d Models? Or do most engines just use their own internal format? Most engines have their own internal formats. The easiest to get started with is probably Waveform OBJ files. They are pretty simple to parse.
|
# ? Oct 24, 2009 18:14 |
|
PnP Bios posted:Most engines have their own internal formats. The easiest to get started with is probably Waveform OBJ files. They are pretty simple to parse. Awesome, i have been playing with .X for a little bit. But Waveform OBJ files seem a little nicer. I have a question, i don't know if im just beyond exhausted. How can i emulate a day and night cycle mathematically? I have a timer right now that records time delta between the previous update call. its in miliseconds, so its not super accurate but im just doing this for fun. Anyways, lets say a normal full day in the game engine takes 10 minutes, so thats 600,000 milliseconds. How can i have a day night cycle with a variable speed? =( All i really want to do right now is control the ambience, lighting setting.
|
# ? Oct 25, 2009 01:17 |
|
For some reason I'm having a hard time with google on this. Can someone post the matrix for rotation t about an arbitrary unit vector <x,y,z> (right hand rotation)?
|
# ? Oct 25, 2009 01:18 |
|
Contero posted:For some reason I'm having a hard time with google on this. Can someone post the matrix for rotation t about an arbitrary unit vector <x,y,z> (right hand rotation)? Did you try "matrix rotation about arbitrary axis"? I'm getting a million good results for that.
|
# ? Oct 25, 2009 01:40 |
|
Contero posted:For some reason I'm having a hard time with google on this. Can someone post the matrix for rotation t about an arbitrary unit vector <x,y,z> (right hand rotation)? If you have the balls, look into quaternions.
|
# ? Oct 25, 2009 02:31 |
|
http://mathworld.wolfram.com/RodriguesRotationFormula.html
|
# ? Oct 25, 2009 04:41 |
|
UberJumper posted:How can i have a day night cycle with a variable speed? =( ambientLightIntensity = sin(currentMilliseconds/millisecondsPerDay*pi*2)? As for the actual ambient light, that depends on your graphics system, but in general you'd want to set up a directional light and rotate it around an axis in the ground plane based on that formula.
|
# ? Oct 25, 2009 07:32 |
|
GuyGizmo posted:Back on the subject of game engines, how well does Python or any of the free Python game engines work? Python being what it is, I suspect that any functionality I might need will be there, like bindings for OpenGL and OpenAL or whathaveyou. But in practice does it tend to be speedy enough to handle a 2D game with sophisticated graphics? If you want to just pump out a game (which more people should these days, dammit!) then follow this guy's advice. If you want to really get nitty gritty and learn a lot about the under the hood nonsense, I'd recommend the masochist option and using C++/OGL/Fmod or something.
|
# ? Oct 25, 2009 14:54 |
|
GuyGizmo posted:Back on the subject of game engines, how well does Python or any of the free Python game engines work? Python being what it is, I suspect that any functionality I might need will be there, like bindings for OpenGL and OpenAL or whathaveyou. But in practice does it tend to be speedy enough to handle a 2D game with sophisticated graphics? You say XNA isn't powerful enough for what you want, but you want to work with python. Huh? Care to explain?
|
# ? Oct 25, 2009 17:34 |
|
Intel Penguin posted:You say XNA isn't powerful enough for what you want, but you want to work with python. Huh? Care to explain? I'd be surprised if Python didn't have some kind of module somewhere that gives you low level control over the sound card, though. A module that binds to OpenAL will probably do the trick. However, I'm still considering my options right now. How does Python's performance compare to other semi-interpreted languages, like C# and Java?
|
# ? Oct 25, 2009 17:42 |
|
C# is lower level than python as far as I know, since C# is compiled to intermediate code while python is purely interpreted. The built in sound for XNA isn't that precise but you could always use another sound library with XNA while still using it for the other parts, like graphics.
|
# ? Oct 25, 2009 17:53 |
|
Intel Penguin posted:C# is lower level than python as far as I know, since C# is compiled to intermediate code while python is purely interpreted. Python is compiled to bytecode. Haven't you ever wondered what .pyc files are?
|
# ? Oct 25, 2009 19:27 |
|
|
# ? May 19, 2024 16:21 |
|
GuyGizmo posted:The game concept I'm trying to get started working on involves synchronizing the background music to user events, kind of like Rez or Lumines. XNA doesn't provide any sort of advanced control over audio or the sound card. All you can do is tell it to play sounds and pause sounds - that's about it. You can't even query what point in a wav is currently being played. There's also an indeterminate amount of latency between when you tell a sound to play and when it actually does, so that makes trying to do proper synchronization nearly impossible. Eh what. There is latency I suppose, but if it's noticeable then you're doing something horribly wrong.
|
# ? Oct 25, 2009 19:54 |