Page 1 of 2

How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 11:03 am
by Linkpy
Hello everyone.

I was just wondering how all of you organize your project(s). I don't talk about folders and files, but in the conception.

What tool do you use to "write down" your idea ? How do you organize how you'll make your game ?

I'll start with my way. The only tool I use is "XMind", a mind mapping tool, and order it with my classes I need to do. That's all :crazy:

Image
(This is my mind map I use for my project)

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 11:34 am
by Jack5500
wow, that seems very organized.
I tend to structure it more loosly:

Image

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 12:08 pm
by Linkpy
Oh ? You don't add more element ? Like in assets, add a node for "image", "sounds", no ?

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 12:24 pm
by Jack5500
Well, from thereon out I name them after their purpose: "Gui", "Effects", "Characters"

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 12:28 pm
by Linkpy
Oh okay, I see. Quiet simple but this can be enough. :D

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 2:06 pm
by zorg
It's good to think about what can affect what else, and also about speed vs memory trade-offs.
My preferred way is a simple text file inside my project folder, showing the structure of both the internal files, and since we are talking on the Löve forums, the save folder as well. For example:

Code: Select all

bin -- project folder
	dat -- assets
		gfx -- graphics, spritesheets, tile atlases... may be subdivided further
		ani -- animation data, describing how one "object" would animate
		sfx -- sound effects
		bgm -- background music
		fon -- fonts
		sha -- shaders
		vox -- voice tracks
		map -- map data
		mid -- midi sheets, also music
		mod -- tracker modules, also music
		...
	src -- my own lua files, may be subdivided further
	lib -- 3rd party stuff
		-- name of lib creator
			-- libname
	main.lua
	conf.lua

usr -- save folder
	sav -- save files
	ini -- config files (controls, etc...)
	scr -- screenshots
	log -- debug & error reporting
	mod -- mods, zip files should be good enough :3
	hst -- high score tables, if applicable
	rpl -- replay files, not really video, just input over frames (deterministic that way)
	vid -- recorded video, series of canvases exported to png; not a realtime thing, probably creatable from replay files though.
	...
The above also makes sure that there are no similarly named paths between the two "root" directories Löve gives you access to.
My fetish for 3-letter directories notwithstanding, i find this quite clean as it is, and it could be specialized more if need be.

As for those trade-offs that i mentioned, those usually come into the "foreground" when one's optimizing an already working codebase, though with experience, huge refactoring can, in most cases, be averted. Also, since lua is not a strongly typed language, my code's usually missing everything that has "class", "factory", "emitter", "builder", "generator", and similar, appended to them. In general, i don't really have a "great plan" of sorts when it comes to modules and interoperability between them; if it works, it works, cleaning can come later.

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 2:42 pm
by Sulunia
Image

Boy, i really do have to organize things.
But i tend to "group" things together based on what they'll do in the game. I have .lua's that only store functions and others that actually have runnable code, for example.

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 4:20 pm
by Linkpy
Oh, quiet good you two !

Sulunia, for me I really don't like having .lua file in my main folder (except conf.lua and main.lua, of course). And I tried Beatfever and it's looks very good, but... What I see in you image, you have not so many files for what you done. I don't understand how you do :crazy:

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 4:27 pm
by ivan
Linkpy wrote:I don't talk about folders and files, but in the conception.
Personally, I use very little OO in my projects. In rare cases, I might use OO when writing the high-level game logic.
Looking at a couple of my larger projects,
there's the "utils" folder for modules that can be reused in other games,
the "states" folder for things like game states, menus and UI,
and a "core" folder where all of the game logic goes.
The rest of the stuff is content: assets, localization files as well as level data and game objects.

Zorg's approach is interesting, and I use a couple of tricks similar to his example.
Like for example, I have a "sfx" folder that contains two sub-folders "wav" and "ogg".
Then I can specify which format I want to use just by changing "sfx/wav" to "sfx/ogg".
During developing, I use "wav" since it's easier to edit.
but when packaging public builds I run a batch converter and switch to "ogg".
Similar tricks can be used for textures with varying level of detail.

Re: How do you organize your project(s) ?

Posted: Tue Jun 07, 2016 4:47 pm
by Linkpy
Yes, with a .sh file for converting file we can build all target in a command, interesting.