Developer Resources Thread - Looking to improve?

Share guides you have written for SMBX, and related tools here.
Emral
Cute Yoshi Egg
Cute Yoshi Egg
Posts: 9722
Joined: Mon Jan 20, 2014 12:58 pm
Flair: Phoenix

Developer Resources Thread - Looking to improve?

Postby Emral » Tue Nov 13, 2018 2:58 pm

Hey guys!
Welcome to this little collection of resources on different topics which migh come in handy when it comes to making levels, code, graphics and episodes and such. If there's a specific area you're looking to impove in, just check out the resources under the header.
The intent of this thread is to accumulate developer resources so that newcomers looking for them don't have to look that far. Replies listing further resources to absorb into this post would be amazing, because I'm surely bound to miss one thing or another.

Over on codehaus we have a channel with a similar purpose to this thread. It's called #dev-lab and sees people posting interesting videos and articles about game development. Make sure to check it out if you're interested!

PROJECT DEVELOPMENT TOPICS

PROJECT MANAGEMENT

WHAT IS IT?
Project management describes the management of teams in order to efficiently get great projects done. In the context of SMBX, it's a skill that is supremely useful if you're looking to build an episode together with a team. If you're wondering why your episode is falling apart, this might be a good place to look.
Spoiler: show
Terms:
Kanban Board
Scrum/Sprints

Synopsis:
Whether you're using kanban, sprints or laxly tracking progress in your project, it's useful to have a structure behind it which can be viewed by all team members at any time. The tools listed below help with establishing such a workflow, and help keep track on who's working on what. For great results in small teams it's wise to avoid situations where many tasks can only be completed by a small subset of the team. Especially SCRUM and Kanban work most effectively if a teammember can take an issue you want to get done in the short term and finish it on their own time.

Tools like Google Drive and Discord help with giving an overview over your project's structure and communicating in your team respectively, while a git repository is an absolute must for sharing the project file amongst your team. Always make sure to have an overview over how far you are, what still needs to be done and how you think you will need for it. Communicate with your team and work on your efficiency while respecting each other's real life duties. And don't forget to have fun.

Tools:
Trello - Kanban board software excellent for splitting work among teams.
Jira - Similar to Trello but easier to work with for sprints and SCRUM.

Google Sheets - Excel online. Collaborate with your team on spreadsheets about your project.
Discord - Free alternative to Slack for communicating in a team.

Github - Server for hosting git projects.
Bitbucket does the same and is worth noting for allowing free private repositories.

Developer Resources:
How to use git to set up git repositories.
The Game Outcomes Project: How Teamwork, Leadership and Culture Drive Results
SELF-EXAMINATION

WHAT IS IT?
In order to create great things, you need to figure out where on the scale from "beginner" to "expert" you stand. Examining your own skill in a field is not only important for finding out what skills you should improve next, but also for determining how powerful you are at the moment.
Spoiler: show
Synopsis:
Before throwing yourself into a massive endevour that can take years, it's good to know how much you can even take at your current skill level. You don't take final exams on day 1 of your classes, either. Or run a marathon shortly after having learned how to walk.

This section is less about resources and moreso a resource in itself. I don't have any articles at this time which go in-depth about this, and there aren't many sources out of game development itself because those people are professionals and have already learned this.
If someone has a more professionally written article about this, I'm happy to include it here instead.

It might at first seem like an oxymoron - how can you know how much you are capable of before working on what you want to work on? Or, to generalize it: "How can I figure out how much I'm capable of when starting something new?" (as this is applicable to just about anything...). The efficient way to figure it out is to shelf whichever complicated task you want to make from the bottom of your heart. If it comes from passion, it can wait a while as you gain the resources to do it justice in the first place. Instead of working on a massive task, tiptoe your way through simpler tasks first to get a grasp on the fundamentals.
Once you have a grasp on the fundamentals you can start making guesses about how long certain tasks should take you. As an example: Perhaps as an exercise for level design you see how many days it takes to make one level, and then figure out how much time you want to give yourself for making an episode consisting of X levels based on that.
Once familiar with this approach you should be asking yourself: "How much work is behind this?" for every task you start. Be it programming, design, drawing, writing, making music or other things. By testing yourself and keeping track of how your speed improves you can find and work on your weaknesses, and start planning around getting rid of them.

Always remember to compare yourself against yourself from weeks/months ago, and not to anyone with much more experience than you. With dedication and efficient improvement strategies, you will outpace anyone you look up to. Traning and exercise aren't just important in sports.
PLANNING

WHAT IS IT?
In order to make good estimates about the scope of a project, it's necessary to plan out what is needed, what can be accomplished by the team in a given timeframe and what possible hurdles might come your way. Planning features, preparing for issues and playing into your team's abilities allows you to be more efficient and successful in creating things.
Spoiler: show
Synopsis:
“By failing to prepare, you are preparing to fail.”
― Benjamin Franklin

Especially for larger tasks it's incredibly important to have an overview over what you want to do at all times. In the Games Industry, the entire development process and all resources are thoroughly documented to keep the entire team always on the same page. Through the use of communication and work documents you can brainstorm ideas together in your team and keep them logged as long as they're needed, easily visible to everyone.

Tools:
Trello - Kanban board software excellent for splitting work among teams.
Jira - Similar to Trello but easier to work with for sprints and SCRUM.

Google Sheets - Excel online. Collaborate with your team on spreadsheets about your project.
Discord - Free alternative to Slack for communicating in a team.

Github - Server for hosting git projects.
Bitbucket does the same and is worth noting for allowing free private repositories.


Developer Resources:
A Game from Start to Finish - Easy to understand guide outlining game development by HAL Laboratories.
Finishing a Game - In-depth guide on planning a project that has chances of survival.
Ways to un-stick a stuck story - More writing-related, but if you're ambitious you might run yourself into a rut or two.
LEVEL DESIGN

WHAT IS IT?
Terms:
Blockout: An iteration of a level in which visuals aren't finalized and the geometry and enemy placement is being tested thoroughly.
Landmark: A unique setpiece in a level.

Level design is the life of your level/project. Its purpose is to provide an engaging experience to your playerbase. Successful level design plays with the player's expectations and guides them to experience what the designer (you) want them to experience.
Spoiler: show
Synopsis:
There are many ways to design levels, and no type of design is the be-all-end-all that gets you a perfect product. Level design combines creativity, planning, psychology and several other topics into an interactive experience. Regardless of how you choose to design your level, allowing the player to interact with your level sits at the core. You decide whether the adventure should be entertaining, eerie or endlessly exciting.

In the industry there are 4 steps to level design:
-Sketches and mockups of the level's setting, ideas, obstacles, atmosphere, etc... These are often rough, and their purpose is to get the idea and how much can be done with it across. Planning is important for levels too!
-A blockout of the level, combining those ideas. There isn't much thought put into the final aesthetics at this point. Perhaps while designing it, people might come up with nice places for landmarks, or with cohesive aesthetic structures.
-Polishing is the third step and involves bringing in the aesthetic and tweaking areas of the level where necessary.
-Iteration is the final step. Test a level to its breaking point and make sure it's as good as it can possibly be.

Developer Resources:
Mark Brown on 4 Step Level Design (Mariolike Level Design)
Mark Brown on 4 Step Design 2 (This time using Mario Maker, so this might feel more appropriate)
Ceave Gaming on Difficulty Curves in NSMBU
Snoman and WhatsWithGames on making good Mario levels
Mark Brown on Puzzle Design
Mark Brown on Donkey Kong Tropical Freeze's Design
ARTISTIC TOPICS

VISUAL STORYTELLING

WHAT IS IT?
In games you often don't have a lot of dialogue boxes to work with without boring the player with endless cutscenes. Developers therefore try to use the structure and appearances of areas, character designs and even a game's soundtrack to contribute to the experience they want the player to have.
Spoiler: show
Synopsis:
"Show, don't tell!" You've probably heard it before. As mentioned above, there are many ways to convey information to players. Writing can often feel like either lazy, disruptive or patronizing, depending on the context in which it is placed. Even for tutorials it's often not optimal to tell the player outright what does what. Even if it's just a sign placed in the world saying what the X button does, it is less disruptive than a dialogue box outright telling the player.

Developer Resources:
The Art of Environment Storytelling
The Uneasy Merging of Narrative and Gameplay
Designing game narrative: How to create a great story
CHARACTER DESIGN

WHAT IS IT?
Would be boring if characters were just empty cardboard cutouts, eh? In all forms of media, developers aim to make their characters expressive, relatable, fleshed out, and act based on their own reasons and merits. But using dialogue alone? We can do better.
Spoiler: show
Synopsis:
How do players know that a spiny isn't safe to jump on, without anyone outright telling them? How does Bowser look so evil and menacing? How do we instinctively know how certain characters will behave just from looking at them?
Designing unique, memorable and characters whose appearance makes sense for their personality or behaviour isn't easy, but it's an essential part of having characters.

Developer Resources:
Ways to make a character feel powerful - A few keynotes
A Masterpost of Everything - Includes writing links.
Resources for describing Characters - When "cool" just doesn't cut it.
Cool Last Names - Bad at naming things?
Your character's personality
Writing Help - Different character stereotypes
The Ultimate Guide to Video Game Character Design 2018
WORLDBUILDING

WHAT IS IT?
Worldbuilding describes the process of creating places, people, worlds for a fictional universe. Character backstories are just as much a part of it as the strategic placement of cities next to rivers for fresh water is. The decisions made during worldbuilding will be reflected in the visual storytelling of a game.
Spoiler: show
Synopsis:
From tectonic plates, to city placement along rivers, to ruins turned to ash from a long resolved war. A world in a game is your canvas to be filled with wonderous locations and a history out of your imagination. A good world is one which lets you experience a slice of its existence through the game, a great world lets you feel its history in every step you take.

Developer Resources:
99 locations - List of sample locations for video games. Use as a suggestion rather than a rule.
Ambient Sounds for Writers - Get yourself in the mood!
Editing and Proofreading Cheat Sheet - Nobody likes typos and bad grammar!
SPRITING

WHAT IS IT?
Spriting (or pixel art) is the process through which visual storytelling is most likely to be expressed in SMBX. Knowing how to draw pixel art lets you easily create setpieces and characters you came up with for you to put them into your level or episode.
Spoiler: show
Synopsis:
In pixel art, every pixel counts. Take a goomba and move some of the eye pixels around. See how its expression changes. See what else you can do to make characters we see every day react to various things. Get creative!
Congrats! If you've never done pixel art before, this is a great first step. If you're enjoying adding silly faces to Nintendo's characters, take a stroll to the first link down to see what else is possible with a bit of exercise.

Remember:
Pixel art in SMBX is resized to 200% by default. However, it's pointless to sprite at this resolution. You just end up having to draw every pixel 4 times!
As a solution, make sure to sprite your objects at half of the ingame resolution (16x16 for a 32x32 pixel block for example), and then resize them just before importing into the game.

Developer Resources:
Pixeljoint Pixel Art Tutorial
Improve your pixel art sprites - A guide to tidying up pixel art.
A Masterpost of Everything - Mostly art links.
Pixel Art Texture Examples
There used to be a REALLY good deviantart flash post about color theory, but it was removed. I'd love to add a link to color theory here, but haven't found a good replacement yet :(
LOGICAL TOPICS

LUA SCRIPTING

WHAT IS IT?
Lua is the language used by SMBX2 for scripting. It's a pretty easy to get into language with vast documentation online, as it is one of the most commonly used scripting languages worldwide. Learning scripting will let you create new things in SMBX2 through Lunalua.
Spoiler: show
Synopsis:
Learning how to write code can be daunting, but with some effort can open a lot of doors and let you develop your critical thinking and knowledge in mathematics. Get started with one of the links below. They're explaining it better than I ever could in a paragraph and a half.

Developer Resources:
Codeacademy - Learn how to code.
Code.org - Learn how to code
There are a lot of sites like this. Find whichever one you feel most comfortable with!
If you're not comfortable picking based on these few sites, here's a more in-depth link:
Do yourself a favor and learn how to code.

Lua-specific:
Lua reference manual
Lua tutorial
Lunalua Basics
Lunalua Documentation
codehaus
COMMON MATHEMATICS

WHAT IS IT?
"Common mathematics" referes to the most common kinds of mathematical procedures that have to be done in scripting. Having a good grasp on mathematical concepts helps solve problems in code. PROBLEM SOLVING

WHAT IS IT?
Often you'll find yourself stuck in a rut with a problem to solve. Googling is a powerful way to resolve a couple of them, but developing a skill for problem solving will let you solve even those which you cannot find online, all by yourself.
Spoiler: show
Synopsis:
Often when met with a problem it's important to take a step back and examine your situation. Take a deep breath, and figure out what might be going wrong. Once you got that, find a way out of the situation and smack the problem in the face!

Developer resources:
How to Google Programming Problems Effectively (Marketed as "programming problems" but these steps allow you to find just about anything more efficiently. And google is definitely a source that has to be considered when solving problems!)
How to Improve Your Problem Solving Skills
Last edited by Emral on Wed Dec 12, 2018 3:32 pm, edited 2 times in total.

Eri7
Banned
Posts: 1770
Joined: Sat Jan 28, 2017 4:48 pm
Flair: Good Foundation allows for strong Execution
Contact:

Re: Developer Resources Thread - Looking to improve?

Postby Eri7 » Tue Nov 13, 2018 3:17 pm

Finally someone made a topic on this, thanks Enjl. Also i would like to add that Dropbox could also be a helpful program to use when you have a team where you design a project together.

Emral
Cute Yoshi Egg
Cute Yoshi Egg
Posts: 9722
Joined: Mon Jan 20, 2014 12:58 pm
Flair: Phoenix

Re: Developer Resources Thread - Looking to improve?

Postby Emral » Tue Nov 13, 2018 3:31 pm

Eri7 wrote:
Tue Nov 13, 2018 3:17 pm
Finally someone made a topic on this, thanks Enjl. Also i would like to add that Dropbox could also be a helpful program to use when you have a team where you design a project together.
For your own sake, don't use google drive or dropbox for sharing files with your team. I've heard countless stories of projects just... getting ruined by an unfortunate slipup and lack of proper version control.
Use Git, like recommended in the Project Management and Planning categories. Syncing is a single button press and any and every change can be reversed.

Akromaly
Bronze Yoshi Egg
Bronze Yoshi Egg
Posts: 425
Joined: Sun Mar 12, 2017 8:07 am
Flair: anemoia
Contact:

Re: Developer Resources Thread - Looking to improve?

Postby Akromaly » Fri Nov 30, 2018 8:09 am

This is really a massive collection of tips, I'm sure it'll help a lot of people with their work, nice job! ^w^

ThePieSkyHigh
Eerie
Eerie
Posts: 755
Joined: Fri Jun 15, 2018 3:03 pm
Flair: eat trash, die fast

Re: Developer Resources Thread - Looking to improve?

Postby ThePieSkyHigh » Fri Nov 30, 2018 9:42 am

Should help a lot of people!

I agree with finding you "own skill zone" although halfway through your project, maybe, you find out how to do cutscenes, for example.

So then you decide to add one on the first level

and so on and so forth, until great episodes come out.

Emral
Cute Yoshi Egg
Cute Yoshi Egg
Posts: 9722
Joined: Mon Jan 20, 2014 12:58 pm
Flair: Phoenix

Re: Developer Resources Thread - Looking to improve?

Postby Emral » Fri Nov 30, 2018 3:40 pm

ThePieSkyHigh wrote:
Fri Nov 30, 2018 9:42 am
I agree with finding you "own skill zone" although halfway through your project, maybe, you find out how to do cutscenes, for example.
So then you decide to add one on the first level
and so on and so forth, until great episodes come out.
... or until you get stuck in an infinite loop of improvement and get increasingly dissatisfied with the older stuff you made for the project. It happens quite a bit!
This is why I suggest smaller projects while you're super ultra learning focused. Taking your example for instance you can run through the following 3 phases within a year of development:
1. Not knowing how to do cutscenes. Levels don't have them.
2. Learning how to do cutscenes. Adding them to levels, improving at it, etc.
3. Knowing a lot about cutscenes and their effects on the game. Disliking some of the cutscenes previously implemented. Redoing or removing them, rendering some previous work undone.

This cycle can go on... it's quite nasty if it does.
Especially in game projects there's always areas in which you can find flaws a couple of months from now. What helps is to get a sense of your own skill and, at the same time, a feeling for when it's a good time to set a design in stone until release. If you don't have that restraint, you might get stuck or design into the void, as described above. Small projects help with that, since the turnaround is quicker and the commitment is smaller.

ThePieSkyHigh
Eerie
Eerie
Posts: 755
Joined: Fri Jun 15, 2018 3:03 pm
Flair: eat trash, die fast

Re: Developer Resources Thread - Looking to improve?

Postby ThePieSkyHigh » Fri Nov 30, 2018 3:55 pm

Your right in every way again, Enjl

Unless of course you really like your work in which in that case you wouldn't edit.

Which never happens :(

And, if this ever happens to me, it's gonna be hard to get out of since I'm a perfectionist, it's bad at times.

Emral
Cute Yoshi Egg
Cute Yoshi Egg
Posts: 9722
Joined: Mon Jan 20, 2014 12:58 pm
Flair: Phoenix

Re: Developer Resources Thread - Looking to improve?

Postby Emral » Fri Nov 30, 2018 4:06 pm

ThePieSkyHigh wrote:
Fri Nov 30, 2018 3:55 pm
Your right in every way again, Enjl

Unless of course you really like your work in which in that case you wouldn't edit.

Which never happens :(

And, if this ever happens to me, it's gonna be hard to get out of since I'm a perfectionist, it's bad at times.
Progress kind of prevents really liking your work all the way. It gets better the more of an understanding you get of stuff like this, but it never goes away. In the episode I'm working on I've reworked the HUD like 7 times at this point and I'm having a blast every time I do it, but I know it also delays work on things more important than polishing a hud that's been perfectly functional for over a year :p
I don't have the restraint I previously talked about, and if I didn't have so much fun and a good grasp on how much work is left in my project, I would do something about it. It's definitely a skill I need to develop for future, more serious projects, but wasting some time on the cost of having fun during a free time project is perfectly okay if you ask me (of course I would say that because I'm super duper guilty). No money and no pressure involved.

ThePieSkyHigh
Eerie
Eerie
Posts: 755
Joined: Fri Jun 15, 2018 3:03 pm
Flair: eat trash, die fast

Re: Developer Resources Thread - Looking to improve?

Postby ThePieSkyHigh » Fri Nov 30, 2018 4:09 pm

Sounds good then. :)

Sure your mini guide'll help a lot of people.


Return to “Guides”

Who is online

Users browsing this forum: No registered users and 1 guest

SMWCentralTalkhausMario Fan Games GalaxyKafukaMarioWikiSMBXEquipoEstelari