• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

212 Neutral

About Gaenor

  • Rank
  1. Congratulations indeed! But I have to wonder, did you choose the screenshots for the steam page? It's a little annoying when you can't tell what kind of game it is by the screenshots.
  2. Dumbest coding mistakes ever

    [code] uint16 numVerts = 0; for(size_t i = 0; i<70000; i++) numVerts++;[/code] Twice last week [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img]
  3. Indie Royale

    I haven't seen any mention of it around here so I thought I'd share. The first of the Indie Royale bundles is on sale right now: [url="http://www.indieroyale.com/"]http://www.indieroyale.com/[/url] It's similar to the humble bundle except that there's no charity involved. It has a minimum price that goes up each time someone buys a bundle, but you can pay more to reduce the price for everyone.
  4. openAL not looping source

    Everything looks fine to me. It's been like a year since I used OpenAL tho. I don't use alut but it looks like it's already creating a context by itself. As for the looping issue, the only difference I see is that I use [code]alSourcei(source, AL_LOOPING, loop);[/code] alSourcei instead of alSourcef, but I'm not sure if it matters.
  5. Critisize my cover letter

    Hi, I don't have the time to read it all, but I think the following things could be changed: [quote name='mikeman' timestamp='1314874405' post='4856226'][size="3"][font="Times New Roman"]I don’t want to bore you, so fast forward to today, [/font][/size] [/quote] [quote name='mikeman' timestamp='1314874405' post='4856226'] [size="3"][font="Times New Roman"](be it the environment I grew up or…the ‘genes’)[/font][/size] [/quote] [quote name='mikeman' timestamp='1314874405' post='4856226'] [size="3"][font="Times New Roman"]For good or for worse though[/font][/size] [/quote] I know this is how you would usually say it (and I would too if I was talking to someone), but in a letter I think you should leave those out. You sound confident in your skills in other paragraphs and I think these detract from that feeling. [quote name='mikeman' timestamp='1314874405' post='4856226'] [size="3"][font="Times New Roman"]The guy I worked with[/font][/size] [/quote] Would "partner" sound better? or maybe cite his name.
  6. A planet made of diamonds!

    Why did I think this was about minecraft?
  7. Unity FBX Models

    Hi, I've recently added FBX support to a preprocessing tool, and this is what I think. If you only want to load models, it's decent. If you just want to load polygons, normals, etc. then you can do it pretty easily and without concerns about speed. It may take some time getting used to the SDK, but support is good and I think it's worth it. Now the ugly part comes with the animations. In a debug build a file with a single animation can easily take more than 2 seconds*. The humanoid.fbx that comes with the SDK takes more than 8 seconds. In release it's pretty much instant (didn't time it) so it may not really be a concern. I also should mention that some malformed files caused the SDK to crash. Now speed aside, I went into a lot of troubles because each program likes to export things... differently. Let me explain. At least in the files I used, the animation keyframes in a file exported with version 6 would contain absolute values for the translations and rotations, whereas a file exported with version 7 would contain values relative to the previous keyframe. And even worse, files from Maya have to be loaded differently than files from Max. ([url="http://download.autodesk.com/us/fbx/20112/FBX_SDK_HELP/index.html?url=WS1a9193826455f5ff1f92379812724681e696651.htm,topicNumber=d0e7429"]see here[/url]) ** I wouldn't use it directly in an engine, but that's mainly because I prefer having a private format that I can load safely. * [size="1"]At least in my experience. Opening the file and calling Import() is what causes the big slowdown. However be advised that my implementation may be faulty and I may be loading more than I should, even if I'm setting most options to false.[/size] ** [size="1"]You can avoid this by having the SDK evaluate the complete transformation at a given time. [/size]
  8. I... I never beat Alex Kidd in Miracle World
  9. Most satisfying game you've played and why

    I'm probably forgetting many games, but right now the most satisfying game I can think of may be Phoenix Wright: Ace Attorney. As for why, I'm not sure I can explain. I remember I had a big smile while I was playing it; thinking "YES!" when you solve a part and giggling like an idiot for no reason. I liked the characters, they weren't overdone and were somewhat believable. The pacing seemed right... I don't know. In this case I guess it's the same reason why you like or hate a book.
  10. The Thing That Should Not Be

    I... am sorry to hear that. Sleep deprivation is really bad on its own and it must be even worse for you. I just wanted to let you know that you're not writing this in vain and I'm reading you. I hope the best of luck to you.
  11. Here comes 2009!

    If you're learning japanese on your own, you'll love this tool. The list is long, but take it slow and have patience. I've been learning 5 new every day, and now after a year and a half I'm almost finished[attention]
  12. Of UIs and placement

    Quote:Original post by Sneftel Yikes! Why would your UI be in the scene graph? The UI is not part of the scene. I did so that I could have consoles, monitor screens, etc. like in Doom 3/Quake 4. That's how I thought it could be implemented. [sad] The point is that it's not just one UI, but many small ones. Thanks everyone for your comments.
  13. Hi there, I'm in the middle of developing the UI system of my engine and I need some feedback. (Yeah, I really need some textures) As it stands I can place UIs in the scenegraph and they appear correctly. They are prerendered with their internal resolutions (similar to Doom 3, the one in the image is first rendered in 240x80 and then applied). All the widgets have 9 "hooks" in the corners, sides and middle so it's resolution independent. But I'm having troubles when I want a fullscreen UI. I've considered several options: 1. Place the UI in front of the camera. Not really an option. There are issues with widescreen displays or even changing the fov. Also remains the problem of losing the UI if you change to a different camera. 2. Have a boolean indicating the UI needs to be drawn fullscreen. Not too elegant. Why should it exist in the scene graph then? 3. Change the concept of rendering. I mean, instead of drawing the UI in front of the scene, change it so that there's a main UI and nothing else. This UI would then include widgets for camera feeds. This would allow interesting effects such as split-screen or PiP, but I think it's overkill. So, what do you think?
  14. Quote:Original post by KungFooMasta Gaenor, your code looks really clean! The input handling looks a little primitive though, I'm not sure if you execute your callbacks on button down or up. Input handling can get quite complex.. in my system you define an *action* as a combination of 1) input type (key, mouse, button, POV, etc.) and 2) input event (pressed, released, held, polled, depends on input type), and then add actionHandlers that are called when the action occurs. Thank you [embarrass] Yeah, it's quite simple but so far I didn't need anything more complex. You can register a button (keyboard/mouse/joystick) indicating if the function should be called once or continuously. You can also ask for the number of devices, number of buttons and axis(axes?) on them, and register callbacks for axis (which receive a delta). I'm not so sure about the axis because I didn't try it yet.
  15. This is from one of my test apps: HSceneNode node; HSoundPlayer soundPlayer; void up() { node->translate(Vector3D(0, 0, -0.1f)); } void down() { node->translate(Vector3D(0, 0, 0.1f)); } void left() { node->translate(Vector3D(-0.1f, 0, 0)); } void right() { node->translate(Vector3D(0.1f, 0, 0)); } void play() { Engine::Audio->playSound(soundPlayer, "data/sounds/monorail_suitguy_what_the_hell.ogg", false); } void hey() { Engine::Exit(); } int main(int argc, char *argv[]) { try { // App::Init(); Engine::Video = new OpenGL11VideoModule(); Engine::Audio = new OpenALAudioModule(); Engine::Input = new DefaultInputModule(); Engine::Network = new NullNetworkModule(); Engine::Physics = new NewtonPhysicsModule(); Engine::Init(argc, argv, Configuration()); // App::Start(); Engine::Input->registerButton(INPUT_KEYBOARD, EXK_ESCAPE, new Functor0f(hey), false); Engine::Input->registerButton(INPUT_KEYBOARD, EXK_P, new Functor0f(play), false); Engine::Input->registerButton(INPUT_KEYBOARD, EXK_A, new Functor0f(left), true); Engine::Input->registerButton(INPUT_KEYBOARD, EXK_D, new Functor0f(right), true); Engine::Input->registerButton(INPUT_KEYBOARD, EXK_W, new Functor0f(up), true); Engine::Input->registerButton(INPUT_KEYBOARD, EXK_S, new Functor0f(down), true); camera = Engine::Scene->addCamera(new FirstPersonCamera(), NULL); camera->translate(Vector3D(8.0f, 30.0f, 27.0f)); camera->rotate(Vector3D(-1.0f, 0.0f, 0.0f)); Engine::Scene->setCamera(camera); node = Engine::Scene->addNode(); soundPlayer = Engine::Scene->addSoundPlayer(node); Engine::Scene->addModel("data/doodads/box.xmd", node); Engine::Scene->addZone("data/maps/test1.asc"); Engine::Scene->addZoneTarget(node); while(Engine::Run()) { // App::Run(); os::sleep(0); } // App::Finish(); Engine::Finish(); } catch (Exception& e) { Engine::OnError(e); } } Any feedback is welcome.
  • Advertisement