Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

293 Neutral

About Jamison

  • Rank

Personal Information


  • Twitter
  1. Agreed. I have an engine written in C++ that uses a virtual file system that I created. I created a packing program in C# that generates a custom binary format which packs images, audio, XML, and shaders (really the packing program can pack any file type). The generated file contains blocks of data identifying the name of the file and source contents. This file can then either be embedded in the EXE, IPA, APK, etc. or it can be included alongside the deliverable and loaded at runtime (I believe in my current implementation, it is loaded at runtime.
  2. Jamison

    Loadout System Design?

    @Plotnus I think it's important that you take a step back from thinking about the structure of your data and the layout of your user interface. Break it up into logical pieces that you can then design and build independently of each other. You're trying to design a lot here and putting it all under what you are calling the "loadout system." Realistically, this could be designed and built as multiple systems. The weapons, the attachments, the projectiles (ammo, as you say), cards, and loadout can all be different systems. A weapon can have multiple slots where attachments can be placed. A weapon holds an attachment. A weapon fires a projectile. The weapon itself does not have damage but the projectile it fires does (but of course, the same projectile could be fired by different weapons which could affect speed which could affect the damage). Do you see where I'm going here? The idea here is to break it down into manageable chunks and design for a single chunk at a time. Of course, one design will affect another but it's important to get a core established for what each system is supposed to handle and accomplish. Only then can you start to think about how your data structure should be. Once your core systems are designed, you can then think about to represent this visually with your user interface.
  3. Jamison

    Loadout System Design?

    I feel your question is a little too general and the requirements are quite broad. A proper design requires a proper definition of what encompasses a load out. Does it include clothing items as well as weapons, items such as potions, etc? You need to define what can go where. Are you thinking of things more like "classes" in Call of Duty or more like a set of gear as in Diablo 3? Additionally, what help specifically are you looking for? Designing the system or implementing/developing the system?
  4. Decouple the data from the implementation details so that you don't need a massive switch statement. Imagine you had 500 different types of potions. Do you really want to make a switch statement with 500 case-statements? I certainly wouldn't. Here is an example: class Potion { public int mana; public int health; public int energy; public int experience; } Creating a potion is simple: Potion superAwesomePotion = new Potion(); superAwesomePotion.mana = 10; // Indicates that the potion should add 10 mana superAwesomePotion.health = 6; // Indicates that the potion should add 6 health superAwesomePotion.energy = 2; // Indicates that the potion should add 2 energy superAwesomePotion.experience = 25; // Indicates that the potion should add 25 XP You can store this data in XML files, JSON, or binary data that can be loaded at runtime or stored in the game in some way. You could create an array of potions that could be indexed or named (dictionary). To apply the potion to a character (or anything really), you could have a UsePotion method: private void UsePotion(Potion potion) { this.mana += potion.mana; this.health += potion.health; this.energy += potion.energy; this.experience += potion.experience; } [Edit] Fixed potion creation sample as mana was duplicated
  • Advertisement

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!