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

Thrust

Members
  • Content count

    215
  • Joined

  • Last visited

Community Reputation

172 Neutral

About Thrust

  • Rank
    Member
  1. Im gonna go ahead and say 6, just because I want to see you sit down and write an article about why washu is better :)
  2. Hi, im currently trying to write a tile based colision system, yet I always seem to get messed up when trying colision. Whats going on is I have a map that consists of an array of tiles and an array of event numbers. What my colision is trying to check is if certain parts of my sprite would be on a tile that is marked as non walkable. Yet for som reason my colision is all messed up and it blocks some things, and allows others. Can you look at this and see if you can understand whats wrong? { // Check top left int blah1 = ((player.m_PosX)/32); int blah2 = ((player.m_PosY)/32); if(event[blah1][blah2] == Tile) return SDL_TRUE; // Check top right blah1= ((player.m_PosX)/32); blah2= ((player.m_PosY+player.m_BlockWidth)/32); if(event[blah1][blah2] == Tile) return SDL_TRUE; // Check bottom left blah1 = ((player.m_PosX+player.m_BlockHeight)/32); blah2 = ((player.m_PosY)/32); if(event[blah1][blah2] == Tile) return SDL_TRUE; // Check bottom right blah1 = ((player.m_PosX+player.m_BlockHeight)/32); blah2 = ((player.m_PosY+player.m_BlockWidth)/32); if(event[blah1][blah2] == Tile) return SDL_TRUE; return SDL_FALSE; }
  3. Got it guys, thanks
  4. Hi, I am currently trying to write a text input function in SDL and I have a question. How would I handle having/not having a shift modifier? Here is my code so far: //regular if ( event.key.keysym.sym == SDLK_a && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"a";} if ( event.key.keysym.sym == SDLK_b && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"b";} if ( event.key.keysym.sym == SDLK_c && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"c";} if ( event.key.keysym.sym == SDLK_d && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"d";} if ( event.key.keysym.sym == SDLK_e && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"e";} if ( event.key.keysym.sym == SDLK_f && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"f";} if ( event.key.keysym.sym == SDLK_g && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"g";} if ( event.key.keysym.sym == SDLK_h && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"h";} if ( event.key.keysym.sym == SDLK_i && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"i";} if ( event.key.keysym.sym == SDLK_j && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"j";} if ( event.key.keysym.sym == SDLK_k && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"k";} if ( event.key.keysym.sym == SDLK_l && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"l";} if ( event.key.keysym.sym == SDLK_m && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"m";} if ( event.key.keysym.sym == SDLK_n && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"n";} if ( event.key.keysym.sym == SDLK_o && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"o";} if ( event.key.keysym.sym == SDLK_p && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"p";} if ( event.key.keysym.sym == SDLK_q && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"q";} if ( event.key.keysym.sym == SDLK_r && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"r";} if ( event.key.keysym.sym == SDLK_s && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"s";} if ( event.key.keysym.sym == SDLK_t && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"t";} if ( event.key.keysym.sym == SDLK_u && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"u";} if ( event.key.keysym.sym == SDLK_v && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"v";} if ( event.key.keysym.sym == SDLK_w && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"w";} if ( event.key.keysym.sym == SDLK_x && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"x";} if ( event.key.keysym.sym == SDLK_y && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"y";} if ( event.key.keysym.sym == SDLK_z && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"z";} //with shift if ( event.key.keysym.sym == SDLK_a && (SDL_GetModState() == KMOD_SHIFT))) {blah=blah+"A";} if ( event.key.keysym.sym == SDLK_b && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"B";} if ( event.key.keysym.sym == SDLK_c && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"C";} if ( event.key.keysym.sym == SDLK_d && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"D";} if ( event.key.keysym.sym == SDLK_e && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"E";} if ( event.key.keysym.sym == SDLK_f && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"F";} if ( event.key.keysym.sym == SDLK_g && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"G";} if ( event.key.keysym.sym == SDLK_h && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"H";} if ( event.key.keysym.sym == SDLK_i && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"I";} if ( event.key.keysym.sym == SDLK_j && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"J";} if ( event.key.keysym.sym == SDLK_k && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"K";} if ( event.key.keysym.sym == SDLK_l && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"L";} if ( event.key.keysym.sym == SDLK_m && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"M";} if ( event.key.keysym.sym == SDLK_n && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"N";} if ( event.key.keysym.sym == SDLK_o && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"O";} if ( event.key.keysym.sym == SDLK_p && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"P";} if ( event.key.keysym.sym == SDLK_q && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"Q";} if ( event.key.keysym.sym == SDLK_r && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"R";} if ( event.key.keysym.sym == SDLK_s && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"S";} if ( event.key.keysym.sym == SDLK_t && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"T";} if ( event.key.keysym.sym == SDLK_u && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"U";} if ( event.key.keysym.sym == SDLK_v && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"V";} if ( event.key.keysym.sym == SDLK_w && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"W";} if ( event.key.keysym.sym == SDLK_x && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"X";} if ( event.key.keysym.sym == SDLK_y && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"Y";} if ( event.key.keysym.sym == SDLK_z && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"Z";} I think im using SDL_GetModState() improperly but the documentation doesent help to much.
  5. Thanks a bundle
  6. Hi, I wrote a function in my game class to take in user input: void Game::Getinput(std::string blah) { int done = 0; while(done==0) { SDL_Event event; while ( SDL_PollEvent(&event) ) { if ( event.type == SDL_KEYDOWN ) { if ( event.key.keysym.sym == SDLK_ESCAPE ) {blah="ass"; done++;} if ( event.key.keysym.sym == SDLK_RETURN ) {done++;} if ( event.key.keysym.sym == SDLK_a) {blah=blah+"a";} } } } } If I pass in a variable from my map class, g_map.mapname, it will not modify it. I dont understand why. Can you tell me what im doing wrong?
  7. Thank you all for the help, I greatly appreciate it! Thanks!
  8. Ok, here is the complete problem: void Tiles::LoadTileSet() { SDL_Surface *temp; int i = 1; std::stringstream blah; temp = SDL_LoadBMP("data/blank.bmp"); TileSet[0] = SDL_DisplayFormat(temp); while(i<3) { blah << "data/" << i << ".bmp"; temp = SDL_LoadBMP(blah.str().c_str()); TileSet[i] = SDL_DisplayFormat(temp); i++; } SDL_FreeSurface(temp); } The problem I keep running into is if I set the while() to anything bigger than 2 it crashes and says the files dont exist. Im so freaking confused. What should I do?
  9. int i = 1; std::stringstream blah; blah << "data/" << i << ".bmp"; This works correctly. Im trying to use the string blah to load files: temp = SDL_LoadBMP(blah.str()); but I get the error: error C2440: 'type cast' : cannot convert from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>
  10. Changing the code to int i = 1; std::string filename("data/"+=i+=".bmp"); yeilds the error error C2297: '+=' : illegal, right operand has type 'char [5]'
  11. Hi, im currently trying to add a variable called "i" into a string, yet it isnt working. Is there some certain format im forgetting? int i = 1; std::string filename("data/"+i+".bmp"); ERROR:cannot add two pointers
  12. Quote:Original post by Drew_Benton This does not center the program, but you can add in that code that calculates the 'center' of the screen yourself [smile] void Core::Center(bool center) { if (center==true) { int width = ((GetSystemMetrics(SM_CXFULLSCREEN)/2)-screenwidth); int height = ((GetSystemMetrics(SM_CYFULLSCREEN)/2)-screenheight); // Needs to be static static SDL_SysWMinfo wmInfo; // Get the info about our window SDL_GetWMInfo(&wmInfo); // Get the handle HWND hWnd = wmInfo.window; // Get the main window's rect RECT Rect; GetWindowRect(hWnd,&Rect); // Move the window MoveWindow(hWnd, width, height, Rect.right - Rect.left, Rect.bottom - Rect.top, true ); return; } } I got it, thanks for the help Drew.
  13. Hi, I was wondering if there is a way to center the main SDL application because right now the application opens in the most random locations. Thanks for the help.
  14. Hi, Im Mark St. Jean, programmer for ShoeString Games (A Subsidiary of EDI Game: Ethereal Darkness Interactive), I am only Seventeen years old. I have recently been given a great opportunity in this business and I would like to express myself here a little bit and get some positive feedback relating back to this topic. Let me unwind and get started here. I myself have currently been given one of the greatest opportunities of my life. I've been an independent game developer for about two years now. I have yet to reach gold on any project of mine, or my former development groups. Through GameDev I have met a local here. His name is Raymond of EDI Game: Ethereal Darkness Interactive. He has taken or former mislead team (known as WastedInk) and turn us into, as of right now, a well organized and dedicated team now known as ShoeString Games. We went from a lackluster 2D game and are currently working on a beautiful 2D Isometric RPG using EDI Games' Flare 3.0 engine. It is currently in development with ShoeString Games under the supervision and direction of EDI Games. We have been given almost complete control of our project, down to what things are meant to look like, to the level design, even to the heart of the game, the story itself. This opportunity we have been given is so amazing to us we feel that we should take advantage of this opportunity. Going from a hobby project to a future commercial game is a large step for us and we want to address a few problems with the way the gaming industry is going at this current time. Let me elaborate. If you were to go into a video game retailer and look on the shelf's you would see what I would consider a tragedy to our industry. In the past year we have come to see the release of the same game over and over again with slight changes. There was somewhere of 5+ W.W.II games release, as well as the recent release of Dynasty Warriors 5 and Kessen III (which after reading about and checking reviews are the exact same games as there predecessors). It seems that our industry is stuck in a rut where we cannot successfully release unique games without severe risk. Some independent developers have stuck gold, such as the release of Katamiri Demochy* and Alien Hominid. It seems to me that there aren't that many developers striving to make unique games that can give new enjoyment back into the gamer but would rather go with something already tested and approved by the fans based on previous sales. This brings me to my point. In the position I have been handed and the freedom of our project that we have control of I ask if it is safe to try something new in an already tainted genre. We are currently developing an RPG that we see as being unique to the market. Something that we haven't seen before in the gaming industry. With gameplay and story involved we believe that we can create something that nobody has played before and will enjoy as much as the first time they played an RPG, or an adventure game, or even a sports game. We are striving to put originality into gaming these days. What I am trying to do is cause an awareness of the problem I believe we are facing and create a positive discussion of things that we can do to prevent and change the state of things. I will start: Our Project: PRO - We are using a story telling approach that we believe has never been used in gaming before. Our story isn't focused on the cliche of "The one destined hero realizes that he must save the world" or "The lead character takes his sword, runs into a mob of enemies, and for the first battle of his life seems to be able to tap into a classic power known as 'magic' that nobody in the world except for your enemies and teammates knows exists." We are also using different types of gameplay for an 2D Isometric RPG that strays from the point and click, go from point A to B, kill this boss, and move on. We believe our vision not only pokes fun at the cliches but creates an atmosphere and emotional connection that lures the player into the game, similar to a feeling you would get the first time you watched your favorite movie, heard your favorite song, or saw your favorite movie. We are also not striving for a number one seller. We are aiming to create a fun gameplay experience, even if that mean making a 10 hour RPG instead of dragging itself out with repetitiveness and every so often dropping in a shocking moment to convince you that you must keep playing through the boring parts just to see what's next. CON - Creating a 2D Isometric RPG is not only dated for its time but it has been done to death. We are trying to counteract this problem with giving off an art direction that hasn't really been used a lot or even used at all. We are also trying to create a more involving world where you aren't just walking around a "map" or an "area" but you are actually experiencing the character in this world that you have never seen before. I ask you, shed your insight on this problem, or what you see can change the way things are going these days.
  15. So far ive been using the forums here and a few other sites. It gives us ok exposure, but is annoying to those who dont have interest in our project. I was wondering where I can go to advertise our game project to the right crowd. Its an online fighter/platformer. I do not know where to go next so please help me out with a link or two, thanks.