How do you organize your project(s) ?

General discussion about LÖVE, Lua, game development, puns, and unicorns.
User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

How do you organize your project(s) ?

Post 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)
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy
User avatar
Jack5500
Party member
Posts: 149
Joined: Wed Dec 07, 2011 8:38 pm
Location: Hamburg, Germany

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

Post by Jack5500 »

wow, that seems very organized.
I tend to structure it more loosly:

Image
User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

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

Post by Linkpy »

Oh ? You don't add more element ? Like in assets, add a node for "image", "sounds", no ?
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy
User avatar
Jack5500
Party member
Posts: 149
Joined: Wed Dec 07, 2011 8:38 pm
Location: Hamburg, Germany

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

Post by Jack5500 »

Well, from thereon out I name them after their purpose: "Gui", "Effects", "Characters"
User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

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

Post by Linkpy »

Oh okay, I see. Quiet simple but this can be enough. :D
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy
User avatar
zorg
Party member
Posts: 3441
Joined: Thu Dec 13, 2012 2:55 pm
Location: Absurdistan, Hungary
Contact:

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

Post 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.
Last edited by zorg on Tue Jun 07, 2016 9:26 pm, edited 2 times in total.
Me and my stuff :3True Neutral Aspirant. Why, yes, i do indeed enjoy sarcastically correcting others when they make the most blatant of spelling mistakes. No bullying or trolling the innocent tho.
User avatar
Sulunia
Party member
Posts: 203
Joined: Tue Mar 22, 2016 1:10 pm
Location: SRS, Brazil

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

Post 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.
Don't check my github! It contains thousands of lines of spaghetti code in many different languages cool software! :neko:
https://github.com/Sulunia
User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

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

Post 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:
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy
User avatar
ivan
Party member
Posts: 1911
Joined: Fri Mar 07, 2008 1:39 pm
Contact:

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

Post 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.
User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

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

Post by Linkpy »

Yes, with a .sh file for converting file we can build all target in a command, interesting.
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 97 guests