• 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

2221 Excellent

About AnnaMarie

  • Rank
  1. I misread and didn't see the line above getting the file format. Sorry! Just woke up :| If you store the path defined in images along with the resource (you have a resource class, the image name is just a string member variable) then resources contain the file path and their own name. From there you can always find a resources image name. If the resource only receives file data you could also find the extension (since you need the string to open the file) then pass the extension along with the file data.
  2. You could start at the end of the string and iterate towards the beginning searching for the period. When the period is found the extension is represented by everything between the period and end of the string. If your language has a string class/type you can do the same with searching and using a substring. Hope that helps :)
  3. The first use for a quadtree I can think of in addition to your link deals with 2D collision detection. You can find more information on Wikipedia where there is a small list (here) as well. I think a quadtree for 2D is pretty common, though, I could be wrong. A more up to date article for a quadtree terrain (though in C# but you can translate it) I found was here.   There are more advanced terrain clipping/LOD systems you can do but I don't know the exact details of them. The node based LOD found on Rastertek has worked for my needs and was pretty easy to implement. I had a simple box for each terrain node/chunk, and I just did bounding box detection to know which chunks were to be rendered. This may not have been as efficient as other techniques but I didn't have any noticeable problems.   Normals are generated when I create the terrain and I just store then inside the buffer. If the terrain isn't changing there doesn't seem to be a reason to regenerate the normals each time using a shader. In the case where my terrain changed (when using a simple brush) I just recalculated and updated the buffer. 
  4. Something else that will help immensely is setting aside some time each day to work on it. Maybe not something crazy like 4 hours a day starting out, but at least about 30 minutes to an hour should help get the habit formed and visible progress.    Once you get comfortable with the basics it's nice to pick something simple and work from there on your own. This is so you are able to teach yourself how to learn new programming topics, and so later on you can get that warm fuzzy feeling from the progress you have made.   Each thing you make should always be a bit more challenging than the last, but not too challenging so you do not get discouraged.   Something that I know helped for me and may help for you deals with tutorials. If a tutorial provides example/working code always retype it, don't just copy and paste it. This way when yours breaks but theirs works you have to go line by line to compare. This helped me learn what the code was doing if I didn't entirely understand, but more importantly trained my eye to spot mistakes and typos.    Good luck! 
  5.     So basically the concept is people that downvote you (in other words, they disagree with the information/opinion you provided) are now targeted for the simple reason they downvoted you? That seems to me to be much more 'misuse' of the system. Perhaps I am misunderstanding?   Honestly a majority (probably >95%?) of the downvoted posts I see are usually for a reason, whether clear to the recipient or not. These include particularly abrasive comments, personal attacks, or people just begging for others to tell them exactly what to do. Here and there I see a few I am confused about, but it usually comes down to someone appearing to blow off the information provided instead of just asking for clarification.  Asking for clarification is so much better than stating the information is useless.    If you (meaning you in a generalized sense) have problems with repeated downvotes just take your time writing a reply. Type it up, re-read it, cut out pointless information, and repeat.
  6. I have to agree that without any sources to be cited or referenced everything you presented appears to be nothing more than a personal opinion.   But honestly the only thing I remembered from the video was trying to be sold a Unity tutorial or something.. which I am not saying don't promote your product but, if you are going to show that video to your parents that's the first thing they will see.   Followed by, potentially, a quick lesson in sales pitches, and then off the computer and get to studying. No amount of Starcraft 2 or interactive competitive rubix cube games are going to teach you Calculus.
  7. I just installed it to a separate partition to see what my opinion was before I made a decision to upgrade my Windows 7. Going into it I was of the opinion that I was going to completely  hate it much as I hated 8, but I was plesantly surprised to find it rather enjoyable. This morning I booted into Windows 10 without really thinking much about it, so that's a good sign I guess. I tried doing the exact same things using both a windows account and a regular desktop account without issues. There may be some with regards to the store but I haven't even looked at that yet.. and honestly probably won't.   There are a few things I don't like so far - particularly the fact I can't add a custom color to the themes as I could in my Windows 7. This isn't a game changer but just something small I wish was present. The colors I was interested in were slightly off of what I really wanted, so I'll just stuck with the default color for now. I also wish I had the ability to change the default system font (which was removed starting in Win 8 I read?). Again something small that doesn't matter much I suppose. As well there were a few games that I wasn't able to get working but this probably comes mostly from the fact I was running them off the other drive. I am sure if I reinstalled them or upgraded my Windows 7 this would be fixed.   With the title bar coloration posted earlier I do wish this could be changed. I think this mostly stems from the fact I am used to a discoloration =[ Maybe this will be fixed in the service update they said comes next month? I mean as time goes on it isn't quite as bad but I would just like it a tint darker.   As far as configuring settings like Cortana and what not that was basically straight forward. I disabled her as I don't really care about that feature or a voice search in general on any device. I am glad that you can optionally disable it if you'd like as opposed to something which was always on. I just know I won't use it but I am not upset it was added in. We all have differing opinions about a feature and that's perfectly fine. I also disabled the internet search feature in the bottom left as it made it rather laggy when I was searching for a specific program I wanted. The configuration process could be.. er.. streamlined by placing all the settings in the same location. It was rather annoying having to travel all over the place just to adjust something.   Just out of curiosity does anyone know what happens if your Windows account credentials are stolen? I was just thinking about this this morning and it makes me feel like on the off chance that did occur you would be completely locked out of your computer. 
  8. Yes, he was using the wrong units.  Consumer electricity rates are about 15 cents per kilowatt-hour, not 0.15 cents.  The final answer of almosdt 30 USD per month was correct.   Note that this is entirely based upon location as well, as the average rate in the United States is only 9.84 cents, with a few states hitting 15, and poor Hawaii at 34 While this data is from 2013, for my state it is still much higher than the rate we are charged. This is due to possibly different regions inside a state having varying costs as well. During winter I start at 5.5 and decrease to 4.6, and summer is 5.5 to 9.5.   Taking the average of all three power rates per month for me it comes out to about $130.. so basically the same price as paying a $10 service.    Since there is a computer running as a simple network drive for easy file sharing that won't suck up data usage it made sense for me to shove svn onto that computer. Sure I could get a free private repository someplace, or even pay for one, but for me this seemed like the best option with what I had. Plus at the time I wanted to learn how to do it just on the off chance I needed to do something similar later on.   My biggest gripes deal with the web interface for CollabNet. Sometimes it doesn't load properly so I have to manually start it, or do a quick reboot every now and then. Adding user permissions is tedious as well. Not that this process takes more than a few minutes, it just requires me to manually find the entry, write their name ect. Paying a service that does this all automagically would definitely be alot easier.   Other than that the remaining annoyances for me are just small things. Storms are of an equal concern as any other electronic device in the house. Gotta remember to turn it off/back on, just in case. General maintenance to make sure everything seems alright and the drives are running ok, and so on.   When I change locations here in about a year and a half though I am definitely going to just pay someone to host. There are features that I want but don't want to spend hours setting them up. Or some I just weren't able to get working at all. Sending a commit email I see as beneficial when working in a team, but I wasn't able to properly setup SMTP. It's just easier to have someone else handle that for me
  9. Are you sure you added the additional includes correctly to link it to your visual studio version? This and this should help you if those weren't set correctly. As well you may need to adjust your additional library directories as necessary if you are having SDL linker problems. These can be found by right clicking the project, going to properties, and are listed under C/C++. The linker is basically the same process and can be found online as well :)
  10. While more advanced networking is out my skill level I think it might help just looking at other real world events where networking is a problem. This video is pretty neat and I think it's worth the watch for the short segment on the WoW networking. While their numbers are much larger than yours, they need to be pushing 100 gbps just on WoW alone. Whether that's per data center or overall was not clear. Each realm comes bundled with a few database servers and instance servers as well, but some networking information gathered by a 3rd party showed you never change connection from the world server. The connection is only lost when moving to an instance (another blade).   How many players you have per server is entirely based down to both the server, type of game, and bandwidth. For example Hearthstone had a goal of 1,000 games per core at once, and ended up with 9-11,000 at once (see this at 21:00). It can get away with this because of the type of game, smart coding, and the bandwidth being extremely low. A quick search online shows something like 1MB per hour or so.. but I could only find the phone specs so PC may be different.   WoW would have a very difficult time trying to match that just because of the bandwidth differences. The world server itself for WoW was not as powerful as I originally thought (looking at the auction they had in 2011), though it has never been stated if a world server was split by region or not. Each server was also upgraded as necessary to help stability.    As for the n^2 problem it comes down to both the upload and download speed. If you have 40 players in the same location the server is receiving and broadcasting updates for every person.. so each player sends his information and receives 39 other players information. The more players within a certain the range the bigger the problem.   Even today with Blizzards infrastructure this is a huge problem I can recall a few times recently where a streamer would gather hundreds of players and crash the server.. with the complimentary ban hammer falling down shortly thereafter Their CRZ (Cross Realm Zone) technology was meant to help mitigate rising costs and spread players out over the entire data center, but has some fundamental problems still that Blizzard said they can't solve.
  11. Take a look at this article it seems to cover the basics rather decently as well :) There are also a few GUI libraries for SFML that you might be interested in looking at their source to see how they designed things as well. For my simple UI I go with a design similar to what Trienco described. My base frame has everything a generic frame would need, with sliders, buttons, ect. containing specific functionality. A complex UI is then just broken down into simpler elements making it much easier to create. Mouse interaction is just handled using simple virtual functions (Like OnMouseDown, OnDragStart, ect) since UI interaction was written with C++ in mind. It feels a little hacky but it gets the job done for right now :) Good luck!
  12. No worries at all   Since you said you had a reasonable understanding about C# Monogame should help you get up and running quickly. While not a game engine itself, it provides some decent infrastructure to build games with. There are numerous tutorials lying around on the internet that can be found using your favorite search engine. As Monogame was designed to be a drop in replacement for the now deprecated Xna framework usually tutorials for Xna will work in Monogame with some tweaking.   There are other options for C# which can be found online as well. These vary from full engines to just a simple graphics wrapper - leaving more or less work for you to do on your own. After gaining experience with a few small games you should have a better idea regarding how to best move forward.    Just make sure to keep things simple at first