• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

212 Neutral

About Gaenor

  • Rank

Personal Information

  • Location
    La Coruña, Spain
  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. [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. 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. 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. 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. Why did I think this was about minecraft?
  7. Unity

    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. 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. 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. 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. 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.