Jump to content
  • Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

308 Neutral

About Crowseye

  • Rank
  1. Crowseye

    What makes an RTS game stand out?

    Genuine diversity and multiple avenues to victory are also important IMO.  With respect to the first point, players can see right through the reskinning and relabeling of units that are functionally identical.  As an example, in a WWII game, the German Panzer IV and Soviet T-34 should usually not share the same speed, armor, range, firepower, maneuverability, etc.  It's also important that the game is balanced in such a way that no one optimal strategy arises that renders all others obsolete.  Some players like to rush out cheep units and disrupt other players while others like to establish an economy and build a massive force with upgraded capabilities.  Others might want to sit back and play defense, hoping that other players run out of resources.  You should decide what strategies you want to be viable in your game and make sure that you have provided the tools to make all of them accessible to a nontrivial number of players.
  2. Crowseye

    Snake game help

    Use the console-specific functions in wincon.h (which is included in windows.h) rather than conio and the system functions.  Edit: conio is not standard C++ anyway and you should not use system() (read here).   You can find documentation on the functions specific to the Windows console here, and a bit more general information about the console provided by Microsoft here.   To answer your question in that light, check the console's input buffer to see if there are any input events using GetNumberOfConsoleInputEvents.  If there are, use ReadConsoleInput to grab them and handle them appropriately (you will need to obtain the necessary information from the event structure first), then move on to the rest of your loop.  If there are no events in the buffer when you check, then you just move on to updating the snake's position.  You should use the functions specific to the Windows console to control the output as well.  For example, do not clear the console screen with system("cls").  Write your own function to clear the screen making use of FillConsoleOutputCharacter (which will unfortunately require you to obtain some other info about the console as well).  There's a nice breakdown of the ways (good and bad) to clear the console window here.   And I know it seems like I just upped the complexity of Snake by a factor of a hundred.    If you're going to spend any amount of time with the Windows console for anything other than plain text games, spending an afternoon learning how to work with it properly is worthwhile IMO.  Ultimately it will feel very simple, I promise.   Anyway, to keep the snake moving when there is no user input, you should keep track of the direction the head is moving in addition to its location.   User input should change this direction when appropriate.  When you update the location of the snake, it's new location is based on its current location and the direction.  You might have other things change the direction of the snake as well, such as a collision with the wall of your "garden".
  3. I know some will probably consider it a waste of time, but writing games like Tetris and Snake on the console, and moving on to small Roguelikes can be a nice exercise for novice programmers IMO.  There's a useful lesson about separating game logic and graphics/input systems that writing such games for the console can help make clear.   Benryves has a tutorial that covers the basics of the console over on his site.  I started there and went on to write my own wrappers for console "graphics" and input.  If you follow kaktusas' link and dig around you can get to http://msdn.microsoft.com/en-us/library/windows/desktop/ms683175(v=vs.85).aspx which gives you the documentation on the functions in wincon.h   If you google something like "Breakout console C++" or "Snake console C++" you can also find a number of examples with code (some better than others, obviously).
  4. Crowseye

    Best Storylines and Worlds

    Brandon Sanderson's Mistborn series has a magical system based on ingesting metals. Certain people are born with the ability to "burn" or metabolize one or more of these metals upon ingestion and tap into the magical properties locked within. The properties are paired, so that one metal allows a telekentic push while its pair allows a telekentic pull. One allows seeing the outcomes of different possible decisions in the past while its pair allows seeing into the future. And so on. Sapkowski's The Witcher series (which was a series of entertaining books before it was turned into a video game series), has, in addition to more stereotypical elemental wizards, the witchers, who gain their powers through mutations resulting from intentional and potentially deadly exposure to chemicals/toxins. They also learn the mixing of potions and formation of elemental hand "signs" to aid them in combat. Witchers are trained professional monster slayers, but are typically not welcome in civilized society because of their mutations, which creates a source of conflict beyond the hero vs. monster one. Robert Zelazny's Chronicles of Amber has a royal family in a fantasy realm who possesses the ability to select characteristics from the "shadow" between realities, mentally adding or subtracting these characteristics to create "shadows" of their own world essentially on the fly (Earth is one of these shadow worlds in the series). Learning this power involves traversing a maze called The Pattern. The family also has a deck of tarot cards that enables them to speak to each other across these worlds and even travel between them if both parties agree. The movie Inception is set in our world but uses what could be viewed as a magic system based on the concept of "shared dreaming" and "dreams within dreams" with a number of specific rules about how these concepts operate.
  5. Crowseye

    Would You Roll Virtual Dice in an RPG?

    I might give the player an option to display a dice roll animation in the playing area for the sake of suspense, but for an RPG I can't see the time spent developing a controlled dice rolling system being worth the use it would get. In particular, if the roll is still randomly generated then the shaking and english are just "fluff" that will eventually be ignored in games that require hundreds or thousands of rolls during a play session. If they are not randomly generated but instead depend on how the player shakes them and/or the type of spin he puts on them, then the game becomes one of repeating the control movements required to get the ideal dice roll. Competitive people with a lot of time on their hands will always find a way in these cases to shift probabilities drastically in their favor in the long-run and undermine the balance of your game. IMO.
  6. Crowseye

    Where to start

    I had a similar experience to Ryan's. When I got bored with the console, my inclination was to try to jump right into the Win32 API, OpenGL, and DirectX. Unfortunately, while one can copy tutorials and get nice things to show up on the monitor, it's not the same as understanding what you're doing. Progress came a lot faster after I decided to take a "step back" and work with SDL. IMO it's a perfect fit for games like Tetris, Pong, Pac-Man, and many other 2D games in that because you don't have to concern yourself so much with having the right code in the right places to make it work you can spend more time absorbing the "lessons" those games have to offer.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!