How do you manage your project?

0 favourites
From the Asset Store
State Machine
$10.99 USD
State Machine is a great tool for managing the state of anything in your game.
  • This topic is a little wide but i will try to keep it simple.

    When a project becomes to big, events and objects composition starts to grow dangerously beyond control. To debug and probably for performance reasons when talking about objects.

    In C2 we can group events in groups and this helps a lot to order the project in general and the sheet in particular. But i found myself still with doubts about how to properly manage and order everything, especially how to manage objects internally.

    Back in the days of Game Maker, the staff always recomended the use of a "master controller object" or similar. This abstract object would have all the events general to the whole game or that are very wide in scope. And this is my approach now with C2.

    This helps me to take out certain amount of events from objects like the player character, enemies and whatever object you don't want to see it grow too much in complexity, for debug and performance reasons as i said before.

    But then i have a big "controller object" full of events that i still don't know if it will hit performance or if it's going to give me more headaches than concentrating all events into their corresponding objects.

    I will appreciate any thoughts about how to "best" manage a project or any view on this subject. (Of course with the use of C2)

    Regards people!

  • Thanks for the link Whiteclaws! Just what i was looking for! :D

  • Poorly.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I tend to break up my event sheets as much as possible, not for performance reasons , but for readability and organisation. Usually I have an event sheet called "common" that is used by every level. It is mainly a set of links to to other event sheets via "include event sheet".

    In turn these other event sheets can call on other event sheets via include events, so you can cascade that hierarchical tree idea as much as you like to break it down. Using lots of functions also helps organisation as these can also be on separate event sheets.

    Also, I find that creating family groups at the outset is important and putting instance variables at the family level is beneficial. Otherwise I start prototyping a game with instance variables on objects, only to later find that I need variations of these objects and have to create a new family and transfer all the events over to family variables which is a pain! Better to start off everything in its own logical family.

    If the sprite is not animated , you can just load in as many frames as you need into this one sprite and use frame offset to display each object. I tend to use this for tiles and non character elements such as bonuses, items, etc. The beauty of this approach is that all your logic, variables etc can run across many similar objects all within one sprite . A mini family as such.

  • I need the licence damn it. Every time i can buy it something happends and i have to pay other things. My president Stupid as IT's called is killing me..

    I cannot still reach a big level project with "free version" limitations. And Scirra put some serious good tools in later releases :(

    I will set a little fire here:

    In what degree you (all the people) believe is better to array all objects variables instead of put the bunch as individual instance variables? (And, of course, global variables should be used at a minimun.)

    I tend to fear how an array, or many, could eat ram just to call one cell.

    Maybe i'm wrong with this though...

  • I think event sheet includes & sub-folders are what you're looking for. With them you can program each little aspect of your game and then later on bring everything together. No need for "master controller objects" ^^;;. Reminds me of my clickteam days. Also I don't see any need to localize variables unless you're making an RPG or something. Another thing that might help is "objects in objects" - keep all, say, collectibles, as a single object with different animations for each one. Can work for enemies too. I did that for Bumper's Quest before families were implemented and it worked very well.

  • Yeah, that "master controller" thing is what Game Maker and Multimedia Fusion recomended (mayby because of their particular workflow). Then in C2 i found little use for such object and that make me doubt if i was understanding something wrong.

    About that "objects in objects", it's the only thing in all the recomendations i readed that i didn't use. Since there's families now, it's still usefull to go that way?

    I guess i have all the necesary insights to not program like an ape now.

    Thanks to all!

  • Yeah, more or less the same as using families but instead of hundreds of objects populating your objects/families lists there's...one. Both ways have their pros and cons.

  • I use kanban, helps me keep focusd'

  • I use event groups and comments on every major events block. Helps keep things organized and if I ever have to figure out what a section of events does, I read the comment above, saving time because I don't have to run through the events and figure out what it does by following the logic.

    Have a habit of taking a small break every 30 minutes of development to reorganize your event sheets, add comments, etc. It pays off in the long run.

  • Yeah, i developed some kind of OCD with those Groups. There's always a better way to organize them.

    Kanban, i never heard of it, but i also used (when i was forced to code) this kind of flow charts. Now i do quick ones on paper because, somehow, it's faster to prototype in C2 than drawing the concept on a chart.

    But this will be a must for big concept games (micromanagements, rpg, AIs, etc)

    I ditched my first implementation of "object controller" for thoose Groups. In the end they do the same thing. And you don't need a sprite and there's also quick ways to disable them.

    Just to throw some logs to the fire, How do you tackle the multiplatform barrier? (that's for everybody)

  • I am making a semi linear RPG.

    Personally I use the dictionary/json method to managing my variables, the centralization is very liberating. I dont have any local variables so far. As for events, I use group containers to organize my events with a few comments and I use sub-folders to house all my objects. as soon as I get a result I am satisfied with, EVERYTHING goes into a container, nothing gets to float freely.

    I am a very visual person so I often draw up flow charts using lucid. I am using the free version so I keep each one pretty small and save them individually so that I can re-tool them later if I need to.

    I store my project files on google drive and alternate between the lables "work" and "home", usually marked as "project4-4Work.capx" so that I know where I uploaded it from. I like to keep 5 previous project files on my work pc, home pc and google drive and delete the older ones as I go.

    This system works well for me right now as I am a solo developer so when I get the rest of my team involved I will have to make some habit changes unfortunately.

  • Nice addition Alexixiv!

    I wonder who much you can do without relying on local variables. Your method of jsoning variables could solve many of my initial questions about how to "debloat" an object. Maybe you can tell more about this to us.

    I also do flowcharts but (silly) i do them on paper. Somehow, i don't know if it's C2 graphic programming or what, but prototyping a concept or mechanic is so fast that going to a second program, to draw a quick flow is a test to my cofee-made anxiety. I guess i better use a program for bigger games or when i add saves with the new feature.

    I'm blambling too much again. I also used google drive before switching to Dropbox.

    I'm also trying to condense as much as possible everything to functions. Without actual code i lose focus all the time trying to figure what and what not to make into a function. Damn me.

  • I once went to a web design conference where a guy did a presentation about his ideal starting project. In it he showed his folder structure, and where he would put all his files, so that all of his projects were always neat and tidy, and probably most importantly they were standard across all his projects.

    He believed it allowed him to get started on a web project really quickly, and meant he could edit previous projects without wasting time learning how it all worked.

    I wondered if anyone has create a similar project structure like this in C2, and if they'd like to share?

    Or is it too impossible as no one game project is the same?

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)