Jump to content
  • Advertisement

Drakkcon

Member
  • Content count

    1911
  • Joined

  • Last visited

Community Reputation

612 Good

About Drakkcon

  • Rank
    GDNet+
  1. Drakkcon

    ..............

    Okay, so I've been away for a really long time. I had to take three standardized tests in a row, and I'm only two-thirds through. Also, due to the fact I have no discipline or motivation at all, I'm giving up on my latest RPG project. I have seriously tried to make a simple 2D RPG at least two dozen times, in the past several years, and I have never even got close to having a playable game. Well, it's not so much a lack of discipline as a lack of skill. I always get up to the point to where I need art to test, but I'm not a good artist. I don't want to work in a team, so I start trying to draw my own art, but it's awful, and I get demotivated. I always end up buying some book on how to draw, making no progress at all, and trying again, but with built-in demotivation because I failed last time. Not this time though, this time I'm doing something different! I have discovered that I find computer engineering more interesting than software engineering, so I want to build my own game console. I bought "The Black Art of Video Game Console Design" by Andre Lamothe, to go with my X Game Station. I had the original e-book, but it was impossible to read the stupid hand drawn diagrams (which have been replaced in the book), and also I just hate reading e-books. The only problem is that Andre is a terrible teacher. I don't think I have seen worse explanations and more misleading comments in my life. But, in spite of this, I am learning, and thanks to a lot of helpful people on gamedev helping me overcome a mental block with electricity in a recent thread, I'm ready to get started in the world of microcontrollers. I'm going to build an SX-based game console, but different from the xGameStation. What I really wanted to do, was to build a 6502-based system, but due to their prices, I'm going with an SX-based system, probably using the SX28 DIP version so I can use a breadboard with it. I was thinking of adding a dedicated video processor so the main cpu doesn't have to generate an NTSC signal, which is really lame. I was also thinking of using a better sound system, like the one used in the Hydra (which I may also get), because the sound system in the XGS sucks. Oh, and I want to add ROM cartridges too. So anyway, I know I'm not going to give up on this because I haven't been so excited about a project in a long time, and my excitement has stayed for more than a month, which is more than any of my game projects.
  2. Drakkcon

    Untitled

    Quote:Original post by Scet I could be totally wrong about this, but won't all your SortedDictionaries be null? I usually initialize things right where they're declared unless they reference other objects in the class, I even initialize value types even though there's no real point, just to match the references. Also there's no point in function prototypes in C#. Unlike C++, the order functions/variables are declared doesn't matter at all. Plus why not just merge EntityReference and Entity? You're right, I was just sort of prototyping though, not wanting to write out the function definitions. That's not to say I don't forget to initialize stuff all the time in C# =) Quote: Good luck, writing an engine is rough. I tried it, and in some ways succeeded. Everyone will tell you it's not worth it, and that's true from most commercial standpoints, but where you're at now you could stand to gain more from the experience. Plus there are always cases where needing your own engine is critical. A friend of mine just finished an engine that's less than 400KB so he could make a 3D web game Thanks!
  3. Drakkcon

    Untitled

    So I haven't put anything in this journal for a long time, 'cause nothing exciting has been happening with me (unless you call playing Baldur's Gate for the billionth time exciting). But now, I'm working (again) on a game engine. Woo. But this time it's different for the following reasons: I am not planning this at all, I will just refactor as necessary. I am making content as I need it, not all at once (big sticking point). I am using C# and XNA. I am better at programming. So I'm going to have fun doing this without too much forward planning, and seeing how playable it is. Anyway, the first thing I started on were the gameplay classes, because they're more fun to make than graphical classes. So the most important game play class is the entity (I started spelling game play as two words because Firefox's spell check is yelling at me) because it represents something that can be interacted with. Every entity has two parts: its sprite, and its other stuff. I couldn't figure out a name for the other stuff so I called it "EntityReference". Here's what I'm talking about: using System; using System.Collections.Generic; using System.Text; using System.IO; using FromNothing.Utility; namespace FromNothing.Gameplay { class EffectValue { string idName; //must be unique string visibleName; //what the player sees double Magnitude; //how strong it is long Duration; //how long (in milliseconds) it will last } //this class specifies all the information about an entity that I might want to save. //Any thing in the game world that can be interacted with is an entity. class EntityReference { //This MUST be unique, it is used to identify an object string idName; //This does not have to be unique, it is what the player sees. string visibleName; //This refers to the type of object that this actor represents. EntityTypes might //be "door", "tank", whatever string entityType; //Every actor has various attributes and statistics associated with it. //This dictionary maps an attribute name with its value. Examples of attributes //would be "strength", "dexterity", and "hitpoints", or in the case of a door, //"thickness", and "picklock difficulty". public SortedDictionary attributes; //Attributes are variables that are always present and relate directly to gameplay. //They never go away. LocalVars, on the other hand, have distinct lifespans. These //might be used to track plot points involving an actor. public SortedDictionary localVars; //Effects are temporary ailments that are capable of effecting all entities, not //just ones with specific storyline purposes. They are usually very temporary. //Examples of effects include "poison", "lung shot", or "on fire". public SortedDictionary effects; //Actions Performable are luachunks that spell out what happens when a character //performs a certain action on this entity. public SortedDictionary actionsPerformable; //if the variable does not exist, it is created. public void SetAttribute(string name, Variable value); public void SetLocalVar(string name, Variable value); public void SetEffect(string name, EffectValue value); public void SetActionPerformable(string name, string luaChunk); //there is no kill attribute because attributes live until the character is removed public void KillLocalVar(string name); public void KillEffect(string name); public void KillActionPerformable(string name); ///////////////////////////////////////////////////////////////////////////////// public Variable GetAttributeValue(string name) { return state.attributes[name]; } public Variable GetLocalVarValue(string name) { return state.localVars[name]; } public EffectValue GetEffectValue(string name) { return state.effects[name]; } ///////////////////////////////////////////////////////////////////////////////// public void Serialize(Serializer serializer); ///////////////////////////////////////////////////////////////////////////////// } class Entity { public EntityReference reference; public Sprite sprite; Entity() { reference = new EntityReference(); sprite = new Sprite(); } } } Anyway, if you see anything that sucks, let me know. I'm going to be a game developer some day, and if you don't help me now, karma dictates that you will be maintaining my code some day.
  4. Drakkcon

    Untitled

    So I haven't put anything in this journal for a long time, 'cause nothing exciting has been happening with me (unless you call playing Baldur's Gate for the billionth time exciting). But now, I'm working (again) on a game engine. Woo. But this time it's different for the following reasons: I am not planning this at all, I will just refactor as necessary. I am making content as I need it, not all at once (big sticking point). I am using C# and XNA. I am better at programming. So I'm going to have fun doing this without too much forward planning, and seeing how playable it is. Anyway, the first thing I started on were the gameplay classes, because they're more fun to make than graphical classes. So the most important game play class is the entity (I started spelling game play as two words because Firefox's spell check is yelling at me) because it represents something that can be interacted with. Every entity has two parts: its sprite, and its other stuff. I couldn't figure out a name for the other stuff so I called it "EntityReference". Here's what I'm talking about: using System; using System.Collections.Generic; using System.Text; using System.IO; using FromNothing.Utility; namespace FromNothing.Gameplay { class EffectValue { string idName; //must be unique string visibleName; //what the player sees double Magnitude; //how strong it is long Duration; //how long (in milliseconds) it will last } //this class specifies all the information about an entity that I might want to save. //Any thing in the game world that can be interacted with is an entity. class EntityReference { //This MUST be unique, it is used to identify an object string idName; //This does not have to be unique, it is what the player sees. string visibleName; //This refers to the type of object that this actor represents. EntityTypes might //be "door", "tank", whatever string entityType; //Every actor has various attributes and statistics associated with it. //This dictionary maps an attribute name with its value. Examples of attributes //would be "strength", "dexterity", and "hitpoints", or in the case of a door, //"thickness", and "picklock difficulty". public SortedDictionary attributes; //Attributes are variables that are always present and relate directly to gameplay. //They never go away. LocalVars, on the other hand, have distinct lifespans. These //might be used to track plot points involving an actor. public SortedDictionary localVars; //Effects are temporary ailments that are capable of effecting all entities, not //just ones with specific storyline purposes. They are usually very temporary. //Examples of effects include "poison", "lung shot", or "on fire". public SortedDictionary effects; //Actions Performable are luachunks that spell out what happens when a character //performs a certain action on this entity. public SortedDictionary actionsPerformable; //if the variable does not exist, it is created. public void SetAttribute(string name, Variable value); public void SetLocalVar(string name, Variable value); public void SetEffect(string name, EffectValue value); public void SetActionPerformable(string name, string luaChunk); //there is no kill attribute because attributes live until the character is removed public void KillLocalVar(string name); public void KillEffect(string name); public void KillActionPerformable(string name); ///////////////////////////////////////////////////////////////////////////////// public Variable GetAttributeValue(string name) { return state.attributes[name]; } public Variable GetLocalVarValue(string name) { return state.localVars[name]; } public EffectValue GetEffectValue(string name) { return state.effects[name]; } ///////////////////////////////////////////////////////////////////////////////// public void Serialize(Serializer serializer); ///////////////////////////////////////////////////////////////////////////////// } class Entity { public EntityReference reference; public Sprite sprite; Entity() { reference = new EntityReference(); sprite = new Sprite(); } } }
  5. Drakkcon

    Nnnngh.

    I like the serializer system used in Enginuity. Considering it only reached five articles, how is it that harmful? The only part I don't like is the memory manager with the rolled-his-own smart pointer. That said, if you did write this rant, I'd read it because it would improve my engine design skills, so rant away, man!
  6. Drakkcon

    Flinch & Bullettrace

    I am honored that you implemented my suggestions =) The thing I noticed most was the reduced accuracy, it made the junkyard scene more exciting because bullets were flying everywhere. That, combined with the new tracers, really added to the firefights I think. The tracers were a good idea. The reduced accuracy makes it seem like the enemies are trying to suppress you, which adds to their perceived intelligence I think. Funny how lowering their AI makes them seem smarter [grin]
  7. Drakkcon

    Untitled

    That's a cool video. My main complaints are with the shoot-outs. I think things would be more interesting if both the player and the enemies were a lot less acurate, forcing you to use cover and perhaps use the environment more. Also, why are junked cars exploding? And lastly, this is just a personal complaint, the enemies feel too unresponsive. This is just something that bothers me about certain FPS games. I know it would greatly increase the work you have to do, but I think there should be a "flinching" animation, so shootouts don't devolve into me running up to an enemy and both of us shooting each other in the face until one dies. It would be cool if they grabbed whatever bodypart you shot. You have definately been working hard though. I've been following this journal for a long time, and your game looks really cool.
  8. Drakkcon

    Kids, just say No to bilinear filtering

    Seeing the sega games rendered in ASCII is the coolest thing ever! Your projects are always interesting.
  9. Drakkcon

    Back

    Maybe. I had horrible diarrhea for the next four days. Then again, that could have been the water...
  10. Drakkcon

    Back

    I just got back from China. Here is a list of weird crap that I ate: -Sea Cucumber -Soups made from various parts of the lotus plant -Chicken Feet -Tripe Sausage -Duck's tongue -Jellyfish -Pork Gellatin -A whole fish (literally) The general rule in China is to not ask what you're eating. It's dangerous. Okay, now that I have had a huge hamburger, I want to work on another game that I probably won't finish. The game will not use XNA, even though I was really excited about it, because I would rather learn how to use Managed DirectX. All I know is that the game will be an RPG. It will be set in a fantasy/sci-fi universe. And it will be sort of like crono trigger, except with a more tactical battle system. I know, I know, don't use all your creativity all at once [rolleyes] I figure it will help if I post every time I start a part of the game. Like, so I can get suggestions. I'm not sure what the ideal order for working on stuff. I plan on creating several interfaces to simplify the parts of my engine: -Resource -Subsystem -DataStore -DataAccessor -Game Anything that the player hears, sees, or anything that is rather large and needs to have specific lifespans will be a resource. Graphics, sound, animations, scripts, and anything that will load from my custom resource file format is a resource. Subsystem should be pretty obvious. It's a game system. The Game interface will have a method that allows it to add subsystems, which it will then tick as often as possible. Datastores are what allow different subsystems to communicate with each other. I only plan on using one, but I'm not making it a singleton because it's perfectly reasonable that you might want different subsystems to share different data with each other. Basically, the data store is a collection of lists of Events. Event looks like this: struct Event { public string subsystem; public string type; public Object data; } That's it. The datastore simply adds events for certain subsystems, and it's up to the DataAccessor to search it's list for events, and then report that to the subsystem. Anyway. I'm jetlagged, so that may be totally incoherent. If it isn't, I would realy, REALLY like to hear suggestions for, or problems with this design. Please comment!
  11. Drakkcon

    non-gamedev entry

    What's wrong with doing it the easy way? class Resource { public: virtual std::string Type() = 0; }; class Sprite : public Resource { public: std::string Type() { return "Sprite"; } };
  12. Drakkcon

    The week of Malathedra!

    Explosives store....fractured wall..... I am putting two and two together.
  13. Drakkcon

    Glow and SMB3 clone update

    This is pretty cool. I was getting a constant 52-53 fps, with: An old Athlon 64 3200+ An old ATI x600 1 gig of ram So, it's quite smooth. My only complaints are having the jump button be the up arrow, and there not being a dash button. I love the springs.
  14. Drakkcon

    Beijing

    Another Ni Hao from Alabama. I'll be there in a few weeks and I still know next to zero Mandarin.
  15. Drakkcon

    I'm finally back

    It's been a while since I wrote an update. I finally have internet access since moving into the president's mansion on campus here, with a shiny new 3 megabit connection (I realize the rest of the world snickers at this. Stop snickering and get me a 10 megabit connection). I really didn't have a lot to do programming wise. I was just working on random sprite projects, when BAM, XNA comes along. Out of curiosity I downloaded the beta, and was blown away by how awesome it is. Seriously, the component system is awesome, and I've been waiting for an excuse to use more C#. I'm going to be totally trying out this platform, and maybe making some games instead of inventing wheels. I finally dropped that old way of thinking. I couldn't stand not to make everything myself, but I've realized that I always failed to make it well because I didn't really know how it should work. With XNA, I can take other people's components and easily integrate them, so my old excuse of having to learn someone else's unintuitive system won't work anymore.
  • Advertisement
×

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!