How do you keep track of what you've coded?

fogartyfogarty Member, PRO Posts: 181
edited August 2012 in Miscellaneous
As my game gets bigger and bigger, I've been struggling to remember which actor does what and where all my attributes appear. It seemed as if I was spending half my time opening actors to see what was in them or clicking on attributes to see what actors I had used them in.

Today, I made a spreadsheet that lists each actor and everything in it. I essentially copied all the instructions from the individual actors into one big spreadsheet where I can see it all together and easily search for every instance of an attribute. It took ~3 hours, but it seems to be helping.

What do other people do to keep track of things in a big game? Is there a tool I don't know about?

Comments

  • The_Gamesalad_GuruThe_Gamesalad_Guru Member Posts: 9,922
    I keep it all in my head as well as use relevant naming conventions and put all extrainious commands in a scene manager or managers that handle global functions.
  • fogartyfogarty Member, PRO Posts: 181
    I'm impressed that you could keep it in your head! I tried to use meaningful names for everything, but when I don't work on it for a week or longer, they don't seem so meaningful anymore when I come back.
  • DeadlySeriousMediaDeadlySeriousMedia ArizonaMember Posts: 838
    edited August 2012
    Same here, Kinda just remember where I put things and where they point to. Thought about making some templates for the marketplace, but I am terrible at organization and documentation so I'd feel bad about my customers having to pick apart that mess, not that it's a mess to me.

    I don't use any naming conventions outside of my attributes. Takes too long! :P
  • Braydon_SFXBraydon_SFX Member, Sous Chef, Bowlboy Sidekick Posts: 9,273
    I keep everything in my personal Cloud. I bought one and it sits just above my head all day. When I need something, I just ask about it, my personal cloud then pours out all my information. ;)
  • fogartyfogarty Member, PRO Posts: 181
    Yes, I think I'm putting too many rules in different actors instead of in one big global actor. For example, I have a rule that's triggered by the score, so I put it in the actor that displays the score in the game. Makes sense, right? A score-related function in the "score" actor. But really, it's more of a global thing and could go in "round rules" or something like that, and when you start spreading rules around in lots of different actors, it becomes hard to remember where you put them, even if it seemed to make sense at the time.

    Maybe this will help someone else who isn't halfway through a game yet!
  • ultimaultima Member, PRO Posts: 1,207
    good habits.. or start developing one =) a system that makes sense to you.
  • KiwiLeeKiwiLee Member Posts: 181
    1. Solid naming conventions
    2. I use layers to store some actors. e.g. In my latest game I have actors that do processing of data in tables etc. These are all on a layer called processing functions. I also generally leave this plain and coloured.
    3. My main actors have a lifecycle status from inception to death and the areas of the code respond to their individual state(s). This allows me to structure the code more easily.
    4. I haven't done so yet but I recommend using DBA tool to restructure attributes into logical areas. I have only healed off as I wanted to see if this was going to be covered by GS in 10.xx (roadmap). Reason being is that we tend to need to add an attribute later and then they are out of place of the other related attributes for the actor/scene/game.

    That said my biggest tip is the old classic tried and tested.

    5. Pen and Paper. I make notes of what I want to achieve and tick it off as I work methodically towards achieving each goal to its completion. Any new ideas or inspirations are noted and reviewed once I complete the current development item.
  • carlblanchetcarlblanchet Member Posts: 755
    The specific names I give my actors is how I remember where what is what and what does what. Something I have not yet done, but will start doing when I will encounter a very complex actor, is to make a Note in the actor, telling yourself a description of everything that is going on.
  • The_Gamesalad_GuruThe_Gamesalad_Guru Member Posts: 9,922
    edited August 2012
    I also use the ability to change the headings in behaviors and rules to a description of what they do and relate to, I also use the note feature to leave comments about unconnected rules or other such house keeping. You have to be organized to write efficient code. Often I write out my code on a pad to see how I want to build a routine then refine it on paper to make it more refined, many times just because something works doesn't mean it can't work better. Just ask @RP we are working on a game and he is floored by how fast I crank out the complex code.
  • IcedBIcedB Member, PRO Posts: 384
    It gets worse as you develop multiple projects, so notes on your work can be a big bonus when you hit that brick wall feeling of brain death 10 hours into the day!

    I do the same as Frying Bacon does with making useful headings and planning. And if you want to optimise your project to the next level then figure out all your logic optimisation for any rulesets and like KiwiLee said, constantly reshuffle your attributes to save yourself some searching time
  • RiffelRiffel Member Posts: 1,272
    actors/imgs/scenes/sounds/layers with precise name, notes, behaviour rename, groups rename
  • fogartyfogarty Member, PRO Posts: 181
    I thought I'd come back to add something that helped me. I was really stuck, so I typed out all my code--from every actor--into one spreadsheet. That let me easily search the entire project for variables and actor names. It might seem kind of extreme and like a lot of extra work, but in the end, I'm sure it saved me time and helped me find errors and move things forward.

    Of course, it's definitely better to have a plan and have everything make sense on paper before you start! But this was my first game, so it was kind of a mess as I was just muddling my way through figuring out things as I went along.
  • epicstagepicstag PRO Posts: 132
    edited October 2012
    TLDR; It all comes with experience, make backup copies of your work, and use a repository if at all possible.

    This comes with coding experience fogarty. Believe me, as I'm sure a lot of guys here can tell you, there will be times where you are trying for hours to get things to code out correctly, and you will get to a point where you don't know what is going on in your head anymore, but you'll trust your process and previous work, and push through to finish out a completed aspect of code.

    This happened to me the other night when altering some things. I literally had no idea what I had changed up unto that point, and only knew that what I had changed would work with what was remaining to change.
  • The_Gamesalad_GuruThe_Gamesalad_Guru Member Posts: 9,922
    A good technique I use is to build a prototype of the action in a separate project using just box actors to set out what I'm after. Once I have it refined I transfer the code over to my main project. This keeps my main project solid. I rarely experiment in my main projects and do that work in stripped down prototype projects.
  • epicstagepicstag PRO Posts: 132
    A good technique I use is to build a prototype of the action in a separate project using just box actors to set out what I'm after. Once I have it refined I transfer the code over to my main project. This keeps my main project solid. I rarely experiment in my main projects and do that work in stripped down prototype projects.
    That's definitely a good idea. Sandboxing, I believe that is called. I also tend to make a backup save called, appName_EFFYOUSEEKAY, to mess around with. The name is so blatant, that I never confuse it with my hard copy.
  • famekraftsfamekrafts Member, BASIC Posts: 834
    at the start of every actor put notes, exactly what it is doing, also rename each rule to say if player hit x or y, or interpolate etc.
  • POMPOM Member Posts: 2,599
    edited October 2012
    "Note behaviour" all over the place, explaining what is going on in the rule below it :)
    And naming every rule with a general headline of what's going on in it.

    Roy.
  • MeaningfulGamesMeaningfulGames Member, PRO Posts: 171
    I usually keep most stuff in my head, but I like to name almost everything I can to help me remember. Actors, rules, behaviours, I rename them all to the function they have in my game. Notes help too occasionally... I personally don't find them as useful as its another "behavior" getting in the way XD
  • fogartyfogarty Member, PRO Posts: 181
    If you create an action in a separate file (a sandbox), is there an easy way to copy and paste it into your main game once it works? I haven't been able to drag actions from one game to another.
Sign In or Register to comment.