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

flodihn

Members
  • Content count

    265
  • Joined

  • Last visited

Community Reputation

281 Neutral

About flodihn

  • Rank
    Member

Personal Information

  1. I was referring to my Raspberry cluster of 4 Raspberry's, maybe that was not clear in my post, sorry about that. But yeah, the numbers heavily depend on the type of game play you have in your game.
  2. I am currently building a mini cluster of raspberry pi's. So far I got two of them but plan to expand to four. Each raspberry pi has 4 cores and 1 GB RAM and 16 GB SSD drive. You could easly support 20,000 - 40,000+ concurrent players on that, but it heavily depends on the game design. When doing single shard multiplayer games, it is critical to avoid choke points, such as having one capitol city or one location for the auction house where players tend to group together. I made my own distributed server in Erlang and on an 8 core desktop computer I could support congestion of about 2 groups with 2000 players at the very same spot. This would be similar to players forming a warband in WoW and running around killing stuff. With those 2 groups of 2000 players each, the same server was under heavy load but still responsive, I tried to fire up a third group of that size but then things started to lag badly. In an other test, I spread the players evenly about the world, I had divided the world (1024x1024m) into smaller chunks of 64x64 meters. With about 60 players in each such chunk the server were running smoothly handling around 12,000 concurrent players with latencies between 10 - 50 ms. I have not yet tested the performance on my raspberry pi cluster, but I am working on it now and should have some interesting results to share later this summer. Supporting 100k+ entities were most of them are static or mostly inactive should not be very hard, but it is time consuming to build such software unless you use something already existing.
  3. At one point, I think it would be healthy to experiment with a different approach. Just store accounts and characters in a key/value store, currenlty my favorite storage is Riak. Give new accounts and character a unique id to use as keys, uuid is a good option (https://en.wikipedia.org/wiki/Universally_unique_identifier). Then store all information bound to the account or character as the value in the structured way. My favourite format is JSON. You can link accounts to characters by having a list of characters uuids in the account data. Then, instead of making queries to the database, just load up the JSON into the memory of your server, make alterations in memory and occation dump JSON to the database. It would look something like this: { "account": { "uid": "123e4567-e89b-12d3-a456-426655440000", "phash": "JDUkTW5mc1E0aU4kWk1UcHBLTjE2eS90SXNVWXMvb2JIbGhkUC5PczgweVhoVHVycEJNVWJBNQ==", "email_encrypted": "UkNyOXFaajYvanBkaVJHNXVmZnV6THpHR0pSMDVUU2U=", "email_hash": "17300987ba9482d229e6bc9f3463b4efbdf2564d", "character_uids": ["522e4867-f89e-13d6-b672-422615122561", "612f2357-d21c-23e4-c152-122665727512"], "subscription": "bronze" } } Note that texts that contains weird characters is in most cases best to base64 encode, otherwise jsons parsers might not parse correctly. In this example I would recommend passwords to be hashed with SHA-256 or even SHA-512 and encode to base64 encode before storing in the db (I use bcrypt to generate password hashes). You probably don't want to store people's emails in clear text in your db, so encrypt using a well known method like AES. But now we have the problem that emails probably need to be unique (one email limited to one account), so we can hash it the email and put a secondary index on it (email_hash). This means we could quickly find if an email is already in use in our system. { "character": { "uid": "522e4867-f89e-13d6-b672-422615122561", "name": "foobar", "skills": [{ "combat": [{ "1h_sword": 32, "2h_sword": 12, "mace": 82, "shield": 54 }], "cooking": [{ "pizza": 99, "soups": 23, "grilling": 23 }], "survival": [{ "acrobatics": 56, "swimming": 23, "skinning": 52, "traps": 13 }] }] } }
  4. This is how I would do it.   Make a authoritative server where clients can use a RestFUL protocol to create/join/leave/play a game. I would use json structures to save the whole state of a game. Make a unique ID for each created game session and store in the database. Make the game session have two modes, active and deactived.  When a game session is active, the json structure is stored in the servers memory. If no action from a player happens within a reasonable time, lets say 10-15 minutes, zip the game state, dump it to a key/value database and mark the game session as deactived. When a game session is deactiveced, but a player makes a play operation request, load the game state from db, unzip and mark game session as active. Before starting, I would look up things such as this on the Internet: "restful design best practices", "key value databases", "best restful api frameworks".   PS. also a push notification sent out to all clients when a turn has been completed is probably a good idea, so clients does not have to poll all the time.
  5. Just asking the question makes it obvious you are new to network programming and possible programming in general, but don't let that discourage you.   There are 2 ways you can go about this: Use a networking engine such as raknet (http://www.jenkinssoftware.com/features.html), this will allow you to get up to speed with a working solution as fast as possible. Learn low level network programming from scratch by following a guide such as Beej's guide to networking (http://beej.us/guide/bgnet/). This will take long time until you get a working solution but you get a good understanding about networking programming. If you want to be good at networking programming, you have to learn the low level details at some point.  
  6. I head that valgrind is quite popular, I have not used it myself but I friends that does and praise it. If you want to try it out you can find it here: http://valgrind.org/
  7. What about generating an encryption key on account creation be rather effective method? For example when a player signs up for the game, the server generates an ecryption key for further communication. If the client loses the key, resinstalling the client or whatever, the player would have to linked their account to an email address to verify and generate a new encryption key. This would mean that keys has to be spoofed at the rare occasions of account creation or key regeneration.
  8. You can try to use a static code analyser, it might find some edge cases why your code crashes.
  9. Unity

    If you are a beginner, I would suggest going with Unity2D and using C# for the coding (I would avoid C++ and Unity's "Javascript"). Programming C# is real coding, you will learn a lot making a game in that.
  10. If you need to some thing great, you probably have to do it 3 times. First time will most likely be a horrible failure, which by the looks of your diagram is indeed the case, but the lessons you get out of the experience are invaluable and will help you create something decent next time. This second time, you will most likely end up with somethiing that works, but is not that great and at last, in your third attempt you will hopefully get it right.
  11. Hello everyone. Perhaps some of you would be interested in reading a blog post i wrote about a game server I have been developing. http://www.flodihn.se/2014/11/11/social-game-30000-players-per-server/
  12. I think your initiative is great. However, your art is not very impressive. As a programmer my art skills are not very honed, but these tutorial helped me produce acceptable pixel art: http://www.pixeljoint.com/forum/forum_posts.asp?TID=11299 http://finalbossblues.com/thinking-in-color/ http://files.byondhome.com/TheMonkeyDidIt/BoilerRoomStyleGuide.html I suggest you take 2-3 days reading up on various pixel art tutorials, I think you can improve a lot.   I am attaching some simple pixel art I made after reading the above tutorials myself.  
  13. Hello everyone.   We are trying to set a world record with highest amount of players playing the same FPS on the same map or instance. At the moment we are aiming for about 10,000 people.   We have developed a simple FPS game to facilitate this test.   We are currently testing out our platform and need players who are willing to try out the game at some certain points in time.   Our next player test will happen tomorrow at 6 PM GMT.   Here is a download to the game:  http://www.abydosentertainment.com/WorldRecordClient   Our Twitter: https://twitter.com/AbydosGameDev        
  14. I created a long collision box shooting out from the ship, if that box collider with another I knew the ship was in risk of colliding in the future. Then you can take the other ships speed and compare to yours with the length of the collision in mind and you have a pretty good guess if collision will happen or not.   I also used an aura mention earlier but I only used that for evading incoming fire, since is usually only good for detecting things really close. 
  15. I would not recommend using the http protocol to make a game, http is a stateless protocol but online games are in almost all cases stateful so the protocol will work against you so have to resort to ugly and non-efficient ways of keeping state, like session variables etc.   You can make the server in PHP thou, making listen and accept to incoming requests without using a web server such as lighttpd or apache etc.       To find cheap ready to use graphics/models, if you choose to make the game in Unity, which is probably not a bad choice for you, the asset store have plenty of assets you can use, often free or at a low cost (I just bought an entire space scene with stars, suns, planets, nebulas etc for 25 dollars).