• 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

3 Neutral

About SotarOraiste

  • Rank

Personal Information

  • Location
  • Interests


  • Twitter

Recent Profile Visitors

166 profile views
  1. Ok o7 , will evaluate whole structure to come up with a solution not overengineering and overcomplicated without a good reason. Thanks for responses.
  2. @ApochPiQ Glad gentleness is the air. My understanding of serialization was like Wikipedia definition of "Serialization is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer ) or transmitted (for example, across a network connection link) and reconstructed later" . Sorry if term wasn't right but by "SQL serialization" I was mostly meaning structuring tables. From that POV, a pseudo JSON structure such as { "id" : 3289723498, "name" : "whatever", "level" : 216, "weapons" : { "sword" : { "stat" : "blabla" , "stat2" : "blabla2" }, "axe" : ... }, "inventory" : { .... } , .... } looks more manageable to me ( with a trade-off of storing repetitive data ) than a SQL JOIN fest, but as I said I may be wrong. ( I at least tend to believe it's a design choice rather than a "never-ever" but I can be still be very wrong) My primary reason to use a GraphDB is Floyd-Warshall / Dijkstra for "spatial" data. If I decide to use a relational database, I ofc either limit it to such functions or switch to a node module one. My current point is as "if JSON structure fits to my purpose , why not use single solution for both?" And ok, it ofc makes perfect sense for "game server software" (which is Node.JS based as this is a browser game) to handle data in memory. Although I didn't make a thorough search, doubt Node.JS (V8) shines in memory management / garbage collection as much as your beloved ( C ? ) choice. And considering Redis is a " in-memory data structure store " , I see no harm in using this key/value store for storing data in-memory as long as crucial performance hits don't occur in comparison. Still, I got the part that using single database is cure of all evils and it rather becomes a question of how you store data after that. Thanks for your response, it has merit indeed.
  3. @frob Fair enough, will check literature @Kylotan Still didn't get why Redis can't be that in-memory state in form of key/value pairs, tbh. And for GraphDB, it's not a sole GraphDB such as Neo4J but a "multi-model" one which actually means a documentDB where vertices and edges are in different collections when you need graph functions, so it also have document storage uses , otherwise I'd use a solution like you mentioned. Can this data be serialized? Probably to a great extent but I find a documentDB more logical for a game, maybe I'm wrong
  4. In my case, a graphDB is needed for where graph shines most ( shortest path or graph traversals ) so some of data must reside in it and some data which is perfect use case for relational one must be in RDBMS. Pity graph data is unable to be serialized efficiently.
  5. @Kylotan I think what is generally suggested ( that database is authoritative and redis is cache layer ) is contradicting your quote which made more sense to me. But still I evaluated options and came up with a solution of using them "where they shine most" ------ So due to GraphDB limitations, will use memory one as main authoritative database and Redis as cache ( unless there is a use case using Redis makes more sense to prevent unnecessary workload or bottlenecks ) and there will be a database both for logging + some aggregated data. Is this good enough? ------ And when using two different databases is a technical necessity, what would you recommend for consistency? I thought of using a query queue for both databases and a timestamp to track so if there is an inconsistency one of databases might rollback (but actually not sure if it's doable)
  6. @Alberth Thanks for reply. Actually one database might handle issue effectively ( just stumbled upon https://engineering.hipolabs.com/graphdb-to-postgresql/ ) but that's another aspect of issue when model is simplified to two databases ( Redis and X ) My interest for Redis is not about performance but handling issues that doesn't need frequent write ( for a classic MMO, it might be player location or hit point in the middle of battle ) As I said I'm also not happy with too much moving parts (which is more error prone) so trying to find optimal solution.
  7. @Kylotan Thanks for reply. Although I agree mostly with your view, a single database solution isn't necessarily best practice in my opinion. But quoting from you from another thread ( of https://www.gamedev.net/forums/topic/686334-mmo-database/ ) , I think this approach is quite applicable. So, when everything is fine Redis/in-memory one is authoritative and other database acts as an eventually consistent database as save game data ( aka snapshot ) . When there is some sort of reboot or failure, this save game DB is authoritative (as in-memory data is no more obviously) and data is just copied from other db to redis. I'd love that in-memory and persistent databases are same so it's fine but not really sure of handlings issues that might arise otherwise. And for prior schema, actually it can be simplified as only in-memory and persistent databases. What would best practice be in case of you can't have " one single database to rule the universe " ? Would it need something like a monitor checking all databases with timestamps?
  8. First of all, thanks for replies. @frob And I know it doesn't look like but this is simplified model as, 1 - Need Redis for fast paced transactions and some scheduled tasks, 2 - "Snapshot" Database is needed primarily for its graph features 3 - "History" one is probably RDBMS as aggregate functions are common. 4 - Log / Analytics are rather off topic so plain text is ofc on the table I'm not happy of having that much moving parts, that's why trying to reconcile them And "failure of any kind" is a bit overstatement At least when server had somehow managed to crash ( not much to do if server explodes after all ) or so ( common risks ) @Alberth Well, I'm rather newbie in this as well. Actually my concern is when there are several databases from different technologies, their response to a failure would be different. If not configured to take snapshot, Redis data will be gone, some will use wall ahead log etc. Just I need a way to ensure that they all reverted back to same point
  9. Hello there o/ , I've started working on a browser game and trying to figure out database structure but my problem is I somehow managed to get a structure but not sure if makes sense and if it does how to handle consistency across several databases of different types. There is a schema that I hope it makes sense According to current plan, Memory database (Redis) : It will be database where main action takes place due to speed concerns. Snapshot database ( an in-memory persistent database featuring more than key/value pairs ) : This is the database only storing data memory DB will need in case of a rebuild and as name implies snapshot of current data. It's eventually consistent and in case of a failure it's authoritative. History database ( probably a RDBMS ) : This database is for storing history data that's relevant to players ( No point in storing that Player345278 has achieved level 28 ages ago in an in memory database) , for data they might need to see one day ( in fashion of ancient tweets ) Log database : As name implies it's for storing logs of any kind ( Once again no point in storing that Player345278 has killed a chicken ages ago if player won't need such data ) Analytics database: It's a server side tool to mine log data for fraud and behavioral pattern etc issues. In current plan, there are writes to several databases in each action (which is heart breaking) for example, Player finds 100 golds : memory one changes total gold, snapshot one also makes change, log one logs a log, history one is also updated if needed ( such as daily gold finders table ) Question is : 1 - Is there a better alternative in your opinion ? 2 - In case of a failure of any kind , what's the best way to ensure minimal loss of data? Should it be like snapshot is authoritative so memory one copies all from it , then logs before latest timestamp of snapshot is deleted , and have no good idea for history ? Thanks in advance.
  10. Hello there o/ , As I need a viable solution for rendering assets server side for a browser game, I evaluated options. Using client side canvas fallback was unwise due to performance issues for devices with already limited processing power , when checking server side I noticed chromium headless, gecko headless or phantomjs might help but I have concerns of reliability. So I found out that bgfx supports webGL 1.0 and webGL 2.0 rendering ( in the name of openGL ES apparently if I'm not mistaken ) so I wondered if having a C / C++ based service for serving prerendered assets ( hoping that I'm not swimming in Dunning-Kruger ocean ) would be a good idea. So I'd ask if using bgfx is a good idea or would you ( / @hplus0603 ) recommend another library for a service like Imvu Next's akamai hosted renderer for images like ( just googled )
  11. Although people may earn money from games they throw up while making or selling, I think pleasing crowds no longer works because that market especially casual one is quite saturated. I'm not saying make yet another Europe Universalis but not Frappy Bird either.
  12. 1 - I think it depends on how empire is organized. If there are noble houses, they're expected to have some authority over some territory imo. And mere nobility is enough source of power 2 - Again it depends, noble houses have army in Game of Thrones , I think it's a bit work but logical to implement a mechanic with benefits and consequences of keeping power in one hand or distributing it 3 - It should be emperor commanding, noble houses might fight for getting office in army and senate (if any) like Rome 4 - Vast estates and trade privileges might be a good idea. 5 - Like houses fight for offices in Rome Total War, they should fight for political power for their own agenda 6 - Player might need noble houses in order to be able to govern a vast empire from single throne ( or may not as Ottoman empire didn't ) 7 - It actually depends on the way mechanic works. If emperor comes from a noble house, it's obvious that Emperor prefers own house to be powerful but if it's directly hereditary , an overpowerful house may try to seize power 8 - An internal conflict between houses might cripple Empire and force Emperor to take a side which might have other consequences
  13. Well ... I never played Harvest Moon (checked few times only via youtube) , even if it is based on same idea and similar mechanics, I doubt it is a blatant ripoff. On my own I prefer indies to go after well made niche games rather than yet another mediocre 3D game or whatever popular at the time. Even revival of "oldies but goldies" is a nice strategy, unless you're Sony backed "No Man's Land" people don't have super high expectations from indies.
  14. I had heard that it's "heavily influenced" of Harvest Moon. As long as Harvest Moon is Nintendo specific and "a Nintendo game" , it's no problem. Indies don't need to make amazing inventions all the time, just focusing on rather niche genres have merit imo.
  15. I think main trap that most indies have fallen is "making yet another of a game" , most games around are in fashion of "hey we have unity so why not a game". If I'm not mistaken , Stardew Valley is made by one person on a very average AMD laptop in few years but it was success from my POV with few millions of revenue. Because it wasn't yet another platformer with even cooler graphics or tower defence wonder.