Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Ask a Professional Game Dev

A topic by Game Professor created Oct 08, 2020 Views: 1,910 Replies: 91
Viewing posts 1 to 19
(+8)

If you need help, just post your question here!

As a professionally published game developer of nearly 2 decades, I wouldn't feel right making a game for this jam; so instead, I would like to offer my support to this community by answering questions that anyone has about game development during this jam. Questions can be general (eg: "How do you design a platformer level"?) or specific (eg: "How do you make a menu button in Unity"?)

As much as possible, I'll try to either answer directly or point you to a resource that answers your question in detail.

Since I don't want this to become about me, I'll just go by the anonymous moniker, "Game Professor". Still, you have a right to know who's advice you are taking, so I'll briefly summarize my background below:

My Background:
I have a long resume of experience as a professional designer, level designer, programmer, producer, and writer for the game industry where I've worked on everything from giant MMOs and long-running major franchises to small indie titles. I have also taught and/or lectured at prestigious colleges like Digipen, USC, and the New York Film Academy. I have trained many devs working on some of today's biggest titles. I have participated in (and judged) many, many game jams over the years; and helped launch some big name dev competitions. As an indie, I've done everything from coding and design to creating art/animation and sound/music (though the later ones are not my primary forte, my work on them is passable).

Technology Experience:
I've worked with (and taught) GameMaker, Unity, Godot, GDevelop, and (a little bit of) Unreal; as well as several engines you've probably never heard of. I've coded in Python, C#, C++, JavaScript, GML, GDscript, and a ton of other languages. For art, I've used Photoshop, Gimp, Blender, Inkscape, and a lot of other image manipulation packages. For sound and music, I mainly use Audacity and LMMS.

 I'm happy to help support this jam and its wonderful community of learners! Let's go make some games!

Submitted(+1)(-1)

What are some pitfalls to avoid when only having a week to design and make a game? How much time should be sent on ideation before starting to code? 

(2 edits) (+3)

Great question!

First and foremost, try to avoid games that are "asset heavy": RPGs, RTS, MMOs, Metroidvanias, CCGs, SIMs, MOBAs, Adventure Games, Management/Tycoon games. Also avoid multiplayer or networked games, anything requiring good AI, and specialty equipment like ARGS or VR. If this is your first game, I also recommend AVOIDING a game with an explicit story (unless you are doing a text/graphics-based interactive novel game in Twine or Ren-Py where the whole game IS a story. In which case, keep it BRIEF). If you do include a story, the entire script should be readable in under 3mins.

Instead, focus on games that are more "system" focused: Puzzles, board/dice/solitaire, simple shooters, platformers, casino games, simple physics games (angry birds/flappy bird/breakout), tower defense, music/rhythm, simple farming, infinite runners, beat-em ups, and physics-based sports (bowling, golf, pool).

I recommend making an explicit schedule (I make one in Google spreadsheets). Make sure you factor in things like people's jobs/schooling, sleep, and other life requirements to figure out how many hours you have available for development. Then, cut the number of available hours in HALF. You want to plan as if you were making a game in just the first 2-3 days, then let the rest of the time be for bug fixes, polish, testing, menus, tutorial creation, sudden life requirements, and coverage for under-estimating how long something will take you.

Split your time between Design/Level Design, Coding, Art, and SFX/Music. But schedule more time for coding and things you are weaker on and try to minimize the impact of stuff you don't know how to do or don't care about. (Eg: Don't make a music game if you don't know how (or care about learning) to write music.)

IF YOU HAVE A TEAM:
Factor in extra time for communication. Make sure your team agrees on how to stay in contact (email, Discord, Texts, etc). I recommend having someone in charge of setting up a Trello board that breaks down everyone's tasks. Also be sure to setup an agreed upon way to easily share files (Dropbox, GitHub, etc). If you have dedicated teammates for assets (art/sound/music) obviously they will make the assets, but the designer/producer needs to help them breakdown how much time to spend on each asset or level.


IF YOU ARE GOING SOLO:
I'd recommend dedicating 4hrs on design, 2 days on coding/dev, 12hrs on art, and 6hrs on sound. If your game needs dialog writing, databases, or level design work; add another 2-4 hours for each.


EITHER WAY:
Consider your personal/team's strengths and weaknesses. If you are an artist or art-heavy team, you'll probably need MUCH longer to figure out the code than to pump out assets - so your game should be extremely simple and pretty. If you are a coder/code-heavy team, you may want to focus on a creating cool mechanics and reduce your art to basic shapes with fun shaders.

Good luck!

Haha, I am making a short demo to my RPG game I want to make as the theme coincidentally is a different planet and my game is about a crew on another planet. It will be like what happens before the main game. Hope I will be able to make it in those two weeks and I hope even more that many will like my demo :) GOOD LUCK TO ALL OF YOU!!!

A demo might be doable. Good luck!

Thank you

(1 edit)

It is 2 weeks  not 1 week

You are right! Given this, I should double my numbers.

Host (1 edit) (+2)

I would like to personally say thank you for providing such thoughtful advice to this wonderful community. It means a lot to know that there are others out there who are selflessly looking out for the beginners, without a personal agenda behind it. Please feel free to reach out to me anytime! I would love to discuss more with you in private. 

(+2)

Thank you! That's very kind of you. I would love to speak with you when you have time, what's the easiest way to connect?

Submitted

This is awesome! Many thanks for your help

Glad to help!

Deleted 2 years ago
Deleted 2 years ago

Hmm, I don't have accounts for either of those; but I created an email for this event.
You can send me your code here: game.professor@yandex.com

If we can figure out the answer, I'll post a general explanation here for others to see.

I remember running into this exact problem years ago and honestly I think it was what scared me away from Game Maker back then. I'd love to know if you both find a solution!

How to make a 2D Pickup system like guns and stuff thanks 

Good question!

Without knowing what system you are using, I'll speak in generalities using an example. Pick-ups are little more than pretty event triggers for doing some mechanic in the game (add points to a score, increase health, add or switch a weapon, replenish bullets, increment a goal object number, etc...)

Let's assume you want to have a pick-up item for a shotgun. Let's also assume that picking up a new weapon occurs when you walk into a floating pick-up icon of that item. Upon triggering the pick-up, it immediately adds the new weapon to your player's weapon inventory and switches to that weapon.

First, implement the shotgun mechanic, the inventory system, and the ability to switch weapons.

Next, create your pick-up indicator (like a floating icon image of the shotgun). Add a collision box to the icon and place it in the level. Setup a trigger so that when someone collides with the pick-up, it will:
 - 1) check to see if the weapon is already in your inventory
 - 2) if not, add the weapon to your inventory
 - 3) switch to the newly added weapon
 - 4) delete the pick-up (unless you want it to remain, like a health/bullet recharge station or save point)

Pick-ups are ideal items to make as a one generic thing with a variable or flag that sets which item it is a pick-up for. (Just check your flag to set which icon/sprite to use.)

ENGINE SPECIFIC IMPLEMENTATION:
Unity: Here's an example of implementing this in Unity:


GameMaker: Here's an example of implementing this in GameMaker:

Godot, use an Area2D that triggers on player enter.  Here's a pick-up tutorial for Godot:

WoW thank you so much i looked into all you said and i have to say thank you SO MUCH

Submitted

Thank you SO MUCH for your help!

My question is related to the game industry in general, not this jam in particular, but if you have time I'd appreciate a reply!

There are a lot of game studios in my area. What would you say are the more important things I need to get a job working for one of them? How do I get those things?

(+2)(-1)

Glad to answer this:


It depends on what kind of job you are looking for, what kind of studios you are considering, and what your background is.

I always recommend any newbie get involved with their local IGDA chapter. (https://igda.org/) Don't expect this to land you a job directly, rather use it meet other devs and learn the layout of the local dev scene. I used to Chair my local chapter.

Keep in mind 3 things: 1) Game studio jobs are some of the most sought-after positions in the world. 2) Studies have shown that 80-90% of industry hires go to someone who is personally connected to someone at the studio. 3) Many devs experience joblessness for a year or more at the start of their career, meaning that you may be competing with experienced professionals even for entry-level positions.

For entry level positions, small indie studios might be more willing to take a chance on a newbie; but a large studio is more likely to have slots for someone. Still, some studios have explicit relationships with major colleges to fill their internship/entry-level positions. Some simply prefer to hire from 1 or more specific programs due to having found high-quality hires there before. Sadly, some studios will also blacklist graduates for negative past hiring experiences. (From what I've seen, FullSail and The Art Institutes are on a number of blacklists, while MIT and Digipen are on a number of preferred hire lists.)

The hardest jobs to get are those in design, writing, and art (possibly also music, but I'm not as familiar with that area). The easiest position to get is a job programming tools, as a technical artist, or doing network programming. I'll try to breakdown the various job types.

Writers generally need to have succeeded in another medium (books, movies, TV, or game design). The exception to this is if you are willing to do the drudge work writing "barks" or if you can land an entry-level job doing missions/quests for an MMO/giant free-to-play.

Game Designer is the single most sought-after, and least understood, position. You need to have a portfolio for this, what goes in it depends on whether you want to be a level designer, combat designer, UX designer, or another kind of designer. Sadly, there is also a lot more room for discrimination here. Studios will "niche down" to distinguish hiring a third-person sci-fi stealth action game designer from a first-person sci-fi stealth action game designer; but if its an IP intended to target women or kids, suddenly ANYBODY is fine in the role. (Seriously, I've seen a studio hire someone who said they didn't know what a game designer is but thought "it sounds fun" and made them the lead designer for a game targeting females.) You should learn how to work in Unity, Unreal, and Godot (because it is up-and-coming and makes you look good for understanding it). For some reason, being a designer for a sports title used to stigmatize you so you could only work on sports titles after that, not sure if this is still the case. Designers are the most likely to be out of work, so its best to have a solid fall-back skill (like coding, art, or writing).

Artists have to be AMAZING at their craft and have a KILLER professional portfolio. For some reason, 99.9999% of artists want to be "concept artists", so next to no one gets to be one. I've been told the easiest job to get in art is as a UI artist. Apparently, very few people like doing that. If you specialize in 3D art/animation; learn in Blender, but download and get used to the experience in Maya. Learn Photoshop no matter what.

Game Music/SFX artists are rarely hired in-house. When they are, they have a track-record for success elsewhere. I know next to nothing about freelance or contract music/SFX.

Programmers are the ones most often called "devs". If you want to get a job as a coder/dev, learn C++, C#, Python, Java, and get comfortable with both Unity and Unreal. It seems like 85% of coders want to be "gameplay" programmers, so that's a hard role to get. Tools, database, and network programming jobs are easier to land; but you'll likely be stuck doing that for the rest of your career. Build-up a portfolio by contributing to open source projects on GitHub.

Producer/Project Management - learn SCRUM and AGILE. Full stop. If you haven't doing this professionally for another tech company, expect this to be a difficult junior position to land. This SHOULD go without saying, but be aware of the culture you are developing. Be open and welcoming to people of ALL genders, races, religions, game preferences, etc. We have seen plenty of producers and leads properly ousted for harassment, we don't need more toxic harassers.

Tester jobs can lead to other jobs at a studio, while senior and lead testers can make a decent living. At the entry-level, these are often filled by new graduates from university CompSci departments and students from specialty programs (like Digipen). You should learn to at least read code in python, C#, C++. Get used to Unity and contribute to open source projects on GitHub. Learn to write solid bug and reproduction reports.

Community Management / Social Media jobs are often heavily sought after, but are more likely to exist at studios with large multiplayer or networked games. I'm not really up on this.

Here's a couple of useful resources:
https://www.gameindustrycareerguide.com/about/start-your-career-in-video-game-de...
(This is THE place for insider-industry news aimed at devs.)
https://www.gamasutra.com/

Good Luck and feel free to ask any follow-ups!

Thanks, Very Helpfull Information

Submitted

This answer gave me a good perspective on the industry, many thanks :)

Submitted

I forgot to come back and say THANK YOU SO MUCH for all of this info! It's incredibly helpful. I really appreciate the time you took for us.

I was glad to help! And feel free to reach out anytime.

Hello Professor! What is the ideal gameplay time a game designer should aim at providing for such Jam events?

(1 edit)

10 minutes. 30 tops.

But keep in mind, there are 2k+ participants and the average attention span is less than 9 seconds, so get to the "cool parts" as FAST as you can! =)

Why should it be 10 minutes? Wouldn't it be cool if they would be longer? I mean yes, every entry will have to be played and they take a long time but still, longer games are mostly cooler

(+1)

Great question!

Longer game times mean longer dev time to polish, balance, and test...not to mention any additional features that may need to be created to extend the fun. Longer game times also encourage devs to bury their "cool parts" later in the game and/or run out of time to make the whole experience optimally fun.

Given the short dev time, it's better to make a tight, highly polished short experience than a lack-luster longer experience. (Think of the award winning game "Portal", which only ran about 2hrs. The game won multiple top awards as "Game of the Year", utterly annihilating the flood of 40-60hr first-person games that came out at the same time.)

But, in the end, do whatever your game requires. Every game is has its own needs...and some need longer run times. Remember, I'm not writing rules, I'm just offering suggestions based on my collection of knowledge and experience to help those who ask for my insight on how to best optimize their experience for this jam. Everyone is free to take my advice or not. Either way, the important things are just to have fun and learn something! =)

(1 edit) (-1)

Ok. Well, you COULD'VE been a good host in this game jam. Maybe next time you and angrysmile will work on this jam together??? Anyway, thank you for helping us

Thanks! I wouldn't want to take anything away from AngrySmile, but I'll help if s/he/they wants me to. 

Submitted

Hey there. I don't really have a question just wanted to thank you for doing this. It's always nice seeing posts like this when you are a beginner.

(+1)

Thank you! 

And I love your Dr. Zoidberg pic! ;)

Submitted

Hahah, Thank you!

Hello This Error Bothered me for a day now.

when i shoot an enemy its gives me an error that its trying to access Transform but its couldn't and it keeps going every 1 second like 100 error comes

if anyone know solution please tell me 

Show us your code, or something like that and tell us what you use. How do you expect us to help you else?

If you don't want to post your code publicly, you can send me your code privately here: game.professor@yandex.com
Also, please mention what engine and version you are using.
If we find an answer, I'll post a general answer to what was happening in case anyone else is having a similar issue.

I have a problem in Python/Pygame with collisions. Can you help me? I will show the code as a reply if you will or some other way. I would really appreciate the help as I've had this problem for so long and even asked it on StackOverflow but the answer didn't help me and I don't want to ask that question again.

I can take a stab at it. Feel free to post your code in reply or email it to me if you prefer.
I'm heading to bed, but I can look at it tomorrow.

main file (main.py):

import pygame
import normalroom
import im
pygame.init()
WindowWidth = 800
WindowHeight = 600
win = pygame.display.set_mode((WindowWidth, WindowHeight))
display = pygame.Surface((400, 300))
rx = 536.5
ry = 85
scroll = [0, 0]
class Player:    def __init__(self, x, y, width, height):        self.px = x        self.py = y        self.width = width        self.height = height        self.rect = pygame.Rect(x, y, width, height)        self.vel = 5        self.walkCount = 0        self.left = False        self.right = False        self.up = False        self.down = False
    def draw(self, display):        walkLeft = [im.RL1, im.RL2, im.RL3, im.RL4, im.RL5, im.RL6, im.RL7, im.RL8, im.RL9]        walkRight = [im.RR1, im.RR2, im.RR3, im.RR4, im.RR5, im.RR6, im.RR7, im.RR8, im.RR9]        walkUp = [im.RU1, im.RU2, im.RU3, im.RU4, im.RU5, im.RU6, im.RU7, im.RU8, im.RU9]        walkDown = [im.RD1, im.RD2, im.RD3, im.RD4, im.RD5, im.RD6, im.RD7, im.RD8, im.RD9]        char = [im.RS1, im.RS1, im.RS2, im.RS2, im.RS1, im.RS1, im.RS2, im.RS2, im.RS1]
        if self.walkCount + 1 >= 9:            self.walkCount = 0
        if self.left:            display.blit(walkLeft[self.walkCount], (self.px - scroll[0], self.py - scroll[1]))            self.walkCount += 1
        elif self.right:            display.blit(walkRight[self.walkCount], (self.px - scroll[0], self.py - scroll[1]))            self.walkCount += 1
        elif self.down:            display.blit(walkDown[self.walkCount], (self.px - scroll[0], self.py - scroll[1]))            self.walkCount += 1
        elif self.up:            display.blit(walkUp[self.walkCount], (self.px - scroll[0], self.py - scroll[1]))            self.walkCount += 1
        else:            display.blit(char[self.walkCount//3], (self.px - scroll[0], self.py - scroll[1]))            self.walkCount += 1
    def move(self):        keys = pygame.key.get_pressed()
        if keys[pygame.K_a]:            self.px -= self.vel            self.left = True        else:            self.left = False
        if keys[pygame.K_d]:            self.px += self.vel            self.right = True        else:            self.right = False
        if keys[pygame.K_w]:            self.py -= self.vel            self.up = True        else:            self.up = False
        if keys[pygame.K_s]:            self.py += self.vel            self.down = True        else:            self.down = False
        self.rect = pygame.Rect(self.px - scroll[0], self.py - scroll[1], self.width, self.height)        scroll[0] += (self.px - scroll[0] - 192)/10        scroll[1] += (self.py - scroll[1] - 142)/10
def redrawWindow(display, player):    display.fill((100, 100, 100))
    tile_rects = []    y = 0    for row in normalroom.room:        x = 0        for tile in row:            if tile == 0:                pass            elif tile == 1:                display.blit(im.Ground, (x * 64 - scroll[0], y * 64 - scroll[1]))            x += 1        y += 1
    player.draw(display)    pygame.display.update()
def main():    run = True    p = Player(rx, ry, 16, 16)    clock = pygame.time.Clock()
    while run:
        clock.tick(25)        for event in pygame.event.get():            if event.type == pygame.QUIT:                run = False                pygame.quit()
        p.move()        win.blit(pygame.transform.scale(display, (WindowWidth, WindowHeight)), (0, 0))        redrawWindow(display, p)
main()

image file (im.py):

import pygame
RS1 = pygame.image.load("RS1.png")
RS2 = pygame.image.load("RS2.png")
RR1 = pygame.image.load("RR1.png")
RR2 = pygame.image.load("RR2.png")
RR3 = pygame.image.load("RR3.png")
RR4 = pygame.image.load("RR4.png")
RR5 = pygame.image.load("RR5.png")
RR6 = pygame.image.load("RR6.png")
RR7 = pygame.image.load("RR7.png")
RR8 = pygame.image.load("RR8.png")
RR9 = pygame.image.load("RR9.png")
RL1 = pygame.transform.flip(RR1, True, False)
RL2 = pygame.transform.flip(RR2, True, False)
RL3 = pygame.transform.flip(RR3, True, False)
RL4 = pygame.transform.flip(RR4, True, False)
RL5 = pygame.transform.flip(RR5, True, False)
RL6 = pygame.transform.flip(RR6, True, False)
RL7 = pygame.transform.flip(RR7, True, False)
RL8 = pygame.transform.flip(RR8, True, False)
RL9 = pygame.transform.flip(RR9, True, False)
RD1 = pygame.image.load("RD1.png")
RD2 = pygame.image.load("RD2.png")
RD3 = pygame.image.load("RD3.png")
RD4 = pygame.image.load("RD4.png")
RD5 = pygame.image.load("RD5.png")
RD6 = pygame.image.load("RD6.png")
RD7 = pygame.image.load("RD7.png")
RD8 = pygame.image.load("RD8.png")
RD9 = pygame.image.load("RD9.png")
RU1 = pygame.image.load("RU1.png")
RU2 = pygame.image.load("RU2.png")
RU3 = pygame.image.load("RU3.png")
RU4 = pygame.image.load("RU4.png")
RU5 = pygame.image.load("RU5.png")
RU6 = pygame.image.load("RU6.png")
RU7 = pygame.image.load("RU7.png")
RU8 = pygame.image.load("RU8.png")
RU9 = pygame.image.load("RU9.png")
Ground = pygame.image.load("Ground.png")

and the tilemap (normalroom.py):

room = [[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],        [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],        [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],        [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],        [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],        [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],        [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],        [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],        [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],        [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],        [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],        [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]]

Now I want the player (Robot) to be able to only walk when he is on the platform/ground and not if he is off of it as the rest is the planet and he only can stay in the base. So he can only walk when he is on the ground (1's in tilemap(64x64)). I hope you can help. I can give you more detail if you need

Hmm...given that Python has an indentation-based syntax, it's hard to tell with this formatting if some of your loops and conditionals are nested or not. There could also be an issue related to how the collision is interplaying with your images, which I can't tell without seeing them.

Can you email the whole project to me to look at? game.professor@yandex.com

Sorry but no. Oof, I didnt even have time for this game jam sadly. Well, I guess I will have to watch more tutorials and change my code-"style" the third time. :/ Thank you anyways

(2 edits)

How do you start sound design, i am working on a survival game and i dont know where to start with sound design, with my previous projects i never used any sound fx but i feel for this project its much more important for the atmosphere that i am going for

You are right to focus on mood via sound design here. Scary/creepy/anxiety-focused games rely heavily on sound to illicit those feelings in your players.

The easiest way to start is by listing out all the "moments" or mechanics your game needs sound effects for. Possible Examples: Footsteps, creaking doors, getting pick-ups, burning fire, building items, destruction/explosions, eating, attack sounds, breathing, leveling-up, etc. Part of good sound design is deciding what needs to be heard and what doesn't, or when something needs to be heard.

Sound effects can achieve 2 things: 1) inform the player of a state change, 2) illicit mood. Great sound design can achieve both simultaneously. For example, imagine your game has a mechanic where the player can freeze to death at night. Every evening, there is a heat bar that fills up if the player gets close to a camp fire and slowly empties the longer a player wanders away from his/her heat source. In that case, you may want your player to hear the crackling sound of fire whenever a player gets close enough to a camp fire to effect his heat bar, and have the sound effect fade the further away she/he/they gets. You might also decide to replace that fire sound with a chilling wind sound to indicate they have wandered too far from their heat source. Without this gameplay mechanic, the crackling fire might be too insignificant to warrant a dedicated sound effect and you may decide that the only time you hear a fire is when you set one so the player can keep their focus to other important sounds.

After you have listed all the sound "moments" that your game needs, start thinking about what emotions or impressions you want to evoke in each instance. For example, when getting a pick-up item you could do the classic gamey thing of using a happy ding/chirp/boop that alerts the player something good has happened, but that might not fit your mood (unless you want it to provide a "hope in the dark" moment). Instead, you might use the sound of, say, fabric rustling to evoke the sense of your player stuffing the item in their pocket or a backpack. Or you might use different sound effects for each pick-up item. A bullet or weapon pick-up might trigger a gun cocking or loading sound, while picking-up food might trigger a munching sound (if you eat it right away) or the sound of your player saying something like "Mmmmm" to remind the player of how hungry they are supposed to be.

If you are going to make your own music, look for instruments that fit the mood you want. This can inspire the way you move forward. Here's a famous example of a horror "instrument" that could provide some inspiration (heavy on the reverb).


I hope this helps, let me know if you have further questions!

thanks for the help

How would i program a boss for my game Shooty Block? it will be hard to help if you dont know what the game is so if you want check it out! devv-logg.itch.io/shooty-block

Cool. You have a solid base for a potentially good shooter game here. Let's start with a few important notes:

1) There doesn't currently appear to be a difference between the various "enemy" shapes, which can be a bit confusing. Players are used to different sprites/enemies indicating a mechanical difference they need to react to. (Eg: differing attack types, differing health/attack strengths, differing speeds, etc.) Each of these differences should require the player to employ different attack/defense strategies in order to keep the game feeling varied and fun.

If these differences already exist in the game, it wasn't clear/obvious; so consider how else you can communicate this information to the player and/or make these differences more exaggerated.

If they don't already exist, consider adding differences to each enemy so it forces your player to change up their tactics. Also, don't add differences at random, consider how various differences will practically impact a player's strategy. Then only add ones that make for fun and interesting strategies. Trade-offs are great for this! (Eg: Small & fast enemies are easier to kill, but more likely to damage you; while big & slow enemies take longer but could do more damage to you. So the player has to consider which to go after first.)

2) It doesn't feel like there is an explicit goal for the player to accomplish (other than avoid failing/dying). Think of adding some kind of clear goal to accomplish, such as: survive a "wave" of enemies (then rest and heal-up for the next wave), traverse an area to get to a goal, protect another object(s) in the area, collect something, etc.

3) There is very weak "feedback" to players for what the actions they are taking (Good or Bad) in the game. This feedback is sometimes called "game feel" or "game juice". I'll link to some resources below for more information on this.

Once you have these 3 items nailed down, not only will you have a really satisfying game experience but designing a boss fight should be easier because the boss will simply be a ramped-up challenge of the existing strategies/mechanics already in play. 

And if nothing else comes to mind: make your boss HUGE, let them give/take LOTS of damage, and have them release very small/fast minions you have to get through at the same time.

(Also, the quit button on the pause menu isn't currently working.)

I hope this helps! Please feel free to ask any follow-up questions.


Here are a few resources on "Game Feel":

What is Game Feel:


How to add Juice to any Game:

Making pressing a button "Fun":

A More in-depth and academic look at game feel:

(2 edits)

Im sorry, ill try to add these things in because the sole reason i didnt put em in is because i didnt know how to. thank you eitherway.

Also ill work on the quit button.

This helped a ton and now i can make the game better. 

Thanks a ton,

DevvLogg

That's OK! You are here to learn and you are doing just fine. =)

Please let me know if you need extra help implementing any of this. I'm here to help you learn how to make the game you WANT to make! 

I really appriciate it man. im currently trying to find a team and its been tough. Thanks for your help anyways.

(1 edit)

Also, how can i code in a score system for my game? i REALLY need it. Thanks!

I could use an explination but exact code would be useful.

 I hope im not asking stuff too much. Sorry!

No problem! Here are a couple of quick tutorials that might help.
Feel free to ask follow-ups if these don't cover what you need:

https://www.youtube.com/watch?v=QbqnDbexrCw

https://www.youtube.com/watch?v=TAGZxRMloyU

I already tried these and they were too outdated // related to a different game. im sorry im bothering you so much but i wanna make this game as fun as possible for the community.

You're fine, don't worry!

Ok, let's start with this: what version of Unity are you using?
Also, how to you picture your scoring system functioning - as in, what actions do you intend to have increase your score and by how much?

2019.4 11f1, and i want it so everytime you kill a red it goes up by 1, green goes up by 4, and black (in hard mode) goes up by 8

 

Hi! I think that it’s amazing that you are doing this for the community. You mentioned having experience with Godot and I just so happen to be using that. How would I detect when a rigidbody 2D is colliding with something and what that something is?

There are a few ways to do this depending on what the other "something" is that you are checking for and how you intend to use it.

Something to keep in mind - unless you are doing a physics-based game (like angry birds or breakout), you probably don't want to use a RigidBody. If you are making a game that needs a RigidBody, it is often better to simply put your collision detection code on the non-RigidBody object. (Eg: In a "Breakout" clone, have the StaticBody blocks detect when they are hit by a RigidBody ball, rather than having the ball detect when it hits a block.)

If you are sure you want to use the RigidBody's collision detection to detect when it has collided with other BODIES (not Area2Ds), then you can simply check "Contact Monitor" for the RigidBody and set its "Contacts Reported" to a number higher than 0 (I recommend 1, but no more than 3 or 4). Then you can use the RigidBody's "body_entered" signal from the node tab.

To check if it collided with a specific item, you can use either "is_in_group() or "extends".

Examples: 

func _on_MyRigidBody_body_entered(body: Node) -> void:
     if body.is_in_group("Bullet"):
        #code for being shot by a bullet

OR...

func _on_MyRigidBody_body_entered(body: Node) -> void:
     if body extends bullet:
        #code for being shot by a bullet

If you want to detect AREAS as well as BODIES, another option is to simply wrap an Area2D that around your RigidBody (though the Area2D's collision shape has to be OUTSIDE the Rigidbody's collision shape). Then you can use the Area2D's "on enter" signals to detect when the RigidBody has collided with something. This is especially useful for when you want to have an early notification range. (Think of how Peggle slows down and zooms in when a shot attempts to hit the final peg...you can reproduce that effect by wrapping a large Area2D around either the ball or peg and have it kick off the effect if there is only one peg remaining.) 

A final option is use Raycasts, but there can be problems with this approach. 
https://kidscancode.org/blog/2018/03/godot3_visibility_raycasts

Here are a couple of useful videos related to this subject. Though neither provides a very straight-forward answer to your question, it might help if you run into problems as this can be a fairly complicated space to navigate.


Thanks for the response, I think that I’ll use the rigid body itself for detections.

I ended up using the rigid body to detect the collision and it works great. Thanks for the advice!

Awesome!

(+1)

Quick note: I'm trying to respond to everyone as quickly as I can, but I'm also getting private emails with additional requests for debugging and career advice (in addition to having work, family, and community obligations). So I apologize if I'm a bit slow to respond. Just know that I am keeping an active eye on this thread. I will prioritize jam-specific project requests over others.

Submitted

Hi! To what extend are people working remotely in the gaming industry? – Also in your experience, which job platforms are mostly used for either a desk or remote job in this industry? – Once again, many thanks for what you are doing to this community.

(-1)

Under COVID, remote work has exploded. I don't have access to any specific statistics, but almost everyone I know is working remote right now. Here's an article from this summer talking about it: https://venturebeat.com/2020/06/12/how-the-pandemic-has-transformed-work-in-the-...

What I do know, is that many people are already expressing a desire to continue doing remote work after the pandemic is over. Some want to be 100% remote and others want a healthy mixture so they can still spend time with their coworkers. (Personally, I wanted to be 100% remote LOOOOONG before COVID happened.)

Sorry, I'm not sure what you mean by "job platforms". Do you mean which positions work remote (ie: do coders work remote and sound designers work in studio)? Are you asking what remote software people use on the job (ie: Slack, Zoom, Discord)? Or did you mean something else?

Submitted

Thanks for the answer!

What I actually meant was "Job 'searching' platforms", sorry for the mistake. From your point of view, which ones you believe work better? (if any)

(-1)

Ah! I recommend starting with Gamasutra.com, it's the main go-to for devs to keep up on industry-related stuff.

Beyond that, I'll be completely honest. There are two main ways devs are hired these days: Friends and LinkedIn.

Surveys have shown time and time again that most industry jobs go to those who already know someone inside the company. 

The other way most devs get a job is by having recruiters reach out to them over LinkedIn. Sadly, the best time to get a job is when you already have one. Most recruiters would rather "snipe" a currently employed person from another studio than take a chance on an outsider or someone who is currently unemployed...even when it is clearly not their fault (eg: layoffs).

So if you want to get a job as a game dev, hang out with game devs and build up a great online profile.

As a side-note: This is actually one of the issues that significantly contributes to women facing the aptly-named "motherhood penalty" that is part of the gender wage-gap. Women are often situationally pushed into taking a break from their careers when they have kids. If that necessary break lasts longer than their maternity leave (assuming they have any), it means becoming "voluntarily" unemployed - which makes them less attractive to future recruiters and hiring managers. And that's before taking into account the persistent stereotypes that moms are too distracted to be good/competitive employees or the fact that I have seen hiring managers both suddenly end a female employee's contract after hearing she is pregnant and refuse to even interview a potential hire they knew was pregnant. [/rant]

Submitted

Thank you so much for your reply and for what you did on this game jam!

-One last question, will you reveal yourself? XD

(-1)

Like most professional devs, I'm not well-known, so it isn't a big reveal.

Had I seen your question earlier today, I might have said, "Sure, I'm so-and-so". Unfortunately, I read today that a major game company just fired an employee who was harassed online for not being a stereotypical "cis-hetero-white-male-under-40" (CHWM<40). The claim is that the company fired them "for their own protection" against the harassment. Whether or not that is the real reason the person was let go, the fact that the online harassment occurred is not in dispute. As a fellow non-CHWM<40, I'm feeling reluctant to be open about my identity in online spaces right now.

(+2)

I just wanted to say CONGRATS to everyone for participating. Whether you completed your entry or not doesn't matter (plenty of professional games are abandoned, too); what really matters is whether or not you got something out of this experience.

I hope you all had fun and learned something new! 

Submitted

Hello! I've always struggled to get my team's game out there, so my question is: what are some good ways to "promote" your game so more people get a chance to play it?