Category: Videojogos

Game designer explicado..

A quantidade de trabalhos/tarefas que envolvem o Game designer.. e que eles realmente fazem :)
Um vídeo interessante que explica de forma rápida as tarefas que cada um faz: o game designer, level designer..

as tarefas/qualidades:

mas no final o que conta é o que já foi feito, o portefólio, mesmo que seja constituído apenas por coisas pequenas!!!

Tags : ,

Recursos como textos e livros

Encontrei uma editora em Berlim que tem algumas coisas relacionadas com videojogos, várias investigações, sobre diferentes perspetivas, ..e interessantes, algumas delas são:
Game Production Studies, por Olli Sotamaa, Jan Svelch
Experimental Games Critique, Play, and Design in the Age of Gamification, por Patrick Jagoda
A Precarious Game The Illusion of Dream Jobs in the Video Game Industry, por Ergin Bulut
Gaming as Art Perspectives on the Relationship between Art and Digital Gaming, por Frank G. Bosman
Time and Space in Video Games A Cognitive-Formalist Approach, por Federico Alvarez Igarzábal
(Not) In the Game History, Paratexts, and Games Regina Seiwald, por Ed Vollans
How to Play Video Games Matthew Thomas Payne, por Nina B. Huntemann
Games and Rules Game Mechanics for the »Magic Circle«, por Beat Suter, Mela Kocher, René Bauer, Kollektion-Knowledge Unlatched Auswahl

+infos(oficial): LINK

Tags : , ,

Parte3 – o meu projeto (aprender)

Alguns dos temas que devem ser debatidos quando se desenvolve um videojogo:
a experiencia do jogador (precisão, e habilidade) (player experience (precision. skillful);
mecânica principal: pilotar habilmente uma nave espacial e evitar o meio ambiente (core mechanic: skilfully fly spaceship and avoid environmental hazards);
loop principal do jogo: ir de a até b para completar o nível e depois avançar para o próximo nível (core game loop: get from a to b to complete the level then progress to the next level).

Outro assunto é o fluxo do jogo e os ecrãs (game flow and screens)  e que se resume ao seguinte cenário:

O tema do jogo (estória de elementos gráficos):
uma geração experimental de uma nave espacial;
tentar escapar de um planeta desconhecido.
(qual o tema central do jogo, o nome do jogo,…)

Questões que normalmente surgem quando se desenvolve um videojogo:
quais são os features (características) que eu devo incluir no meu videojogo?
quando é que se deve começar o desenvolvimento?
quais são as prioridades?
e se eu não tiver tempo?
quando é que eu devo parar?

Metodologia Onion Design (core feature ou mecânicas):

Devem haver respostas para:
qual é característica que é única e mais importante para o jogo?
qual é a característica seguinte mais importante?
qual é a característica seguinte mais importante?

(exemplos: movimento do jogador, colisão com o ambiente (e morrer por causa disso), power ups, ir de a para b e começar um novo nível (level progression), existirem obstáculos que se mexem, existência de pontuação, existência de inimigos, fuel..)

Um alternativa a este modelo será a de começar pelo mais difícil e mais complicado primeiro.

coisas interessantes:
A classe MonoBehaviour:
input +infos: LINK
Input.getKey +infos: LINK

simular o vento no jogo, alterar a física do projeto em X por exemplo

o áudio:
deve estar na camara, porque é o local onde o jogador está
para trabalhar o áudio vai ser necessário:
audio listener (na camara)
audio source (o elemento gráfico que tem/produz o áudio)
audio file

problemas com o áudio:
ou quando se faz o play no Unity estar muted
ou no projeto do ficheiro, ir às preferences…

O AudioSource +infos: LINK
O AudioSource PlayOneShot +infos: LINK

As cenas tem que ser geridas e referidas:

O SceneManager + infos: LINK

Pode também existir a necessidade de colocar uma pausa entre o morrer e o renascer, para isso existe o método Invoke()
Tem como referência o uso de uma String e pode ser lento.. alternativa é usar o Coroutine

O Invoke +infos: LINK

Ainda acerca dos prefabs:
convém que sejam feitos como deve ser e não duplicar/acrescentar simplesmente na barra inicial
remover os box colider de todos e aplicar apenas ao elemento pai do prefab
adicionar depois um box colider e moldar de seguida esse box colider com a ferramenta de edit colider

Particle System:
tem um emissor
e tem as partículas
é adicionado como game object ou através de um componente
um particle system tem módulos que permitem controlar o comportamento
se ficar a pink (cor de rosa) ir ao módulo render->material (é porque não tem ainda material)
na secção shape do módulo podemos alterar o comportamento do cone no radius
e manter os loops ativos

Lighting tab:
(menu window-> rendering-> lighting)
permite manipular os elementos relativos ao lighting
existem:
main directional light (sol)
environment lighting ()
scene lights (do tipo spot lights…)

Lighting +infos: LINK

transformações:
através do código
vector3
starting position (x,y,z)
movement vector (x,y,z)
movement factor (efeito de ping pong), entre 0 e 1

Transform +infos: LINK

movimento constante:
Matemátia, Mathf.Sin +infos: LINK

algum código:

using System;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Colisoes : MonoBehaviour
{
    [SerializeField] float tempoLoadNivel = 2.0f;
    //audio
    [SerializeField] AudioClip suscesso;
    [SerializeField] AudioClip insucesso;
    AudioSource fonteAudio;

    [SerializeField] ParticleSystem suscessoParticulas;
    [SerializeField] ParticleSystem insucessoParticulas;
    

    bool estadoEmTransicao = false; //lidar com sons, movimentos..

    //cheat code
    bool desligarColisoes = false;
    
void Start() {
    fonteAudio = GetComponent<AudioSource>();
    fonteAudio.Stop();
}
void Update() {
    ResponderATeclasDeDebug();
}

void ResponderATeclasDeDebug(){
    if(Input.GetKeyDown(KeyCode.L)){
        loadOProximoNivel();
    }else if(Input.GetKeyDown(KeyCode.C)){
        desligarColisoes = !desligarColisoes;
    }
}

    void OnCollisionEnter(Collision other) 
    {
        if(estadoEmTransicao == true || desligarColisoes == true)
        {
            return;    
        }
        switch(other.gameObject.tag)
        {
            case "Amigo":
                Debug.Log("Amigo");
                break;
            case "Fuel":
                Debug.Log("Fuel");
                break;
            case "Finish":
                Debug.Log("Parabens terminaste");
                //loadOProximoNivel();
                ComecarSequenciaSucesso();

                break;
            default:
                //Debug.Log("huns..");
                //ou reLoadNivel();
                //ou com pausa
                //ou Invoke("reLoadNivel", 1f);
               //ou Invoke("ComecaSequenciaCrash", 1f); //criar efeito de pausa com disable teclado
               ComecaSequenciaCrash();
             break;
        }
    }

    void ComecarSequenciaSucesso()
    {
        estadoEmTransicao = true;
        //audio
        fonteAudio.Stop();
        fonteAudio.PlayOneShot(suscesso);

        //particulas
        //ParticleSystem.Play();
        suscessoParticulas.Play();

        //parar o movimento
        GetComponent<Movimento>().enabled = true;
        //invoke..
        Invoke("loadOProximoNivel", tempoLoadNivel);
    }

    void ComecaSequenciaCrash()
    {
        estadoEmTransicao = true;
        //som
        fonteAudio.Stop();
        fonteAudio.PlayOneShot(insucesso);

        //particulas
        //ParticleSystem.Play()...
        insucessoParticulas.Play();

        //criar efeito de pausa com disable teclado
        GetComponent<Movimento>().enabled = false;
        Invoke("reLoadNivel", 1f);
    }

    void loadOProximoNivel()
    {
        int cenaCorrenteIndex = SceneManager.GetActiveScene().buildIndex;
        int proximaCenaIndex = cenaCorrenteIndex + 1;
        if(proximaCenaIndex == SceneManager.sceneCountInBuildSettings){
            proximaCenaIndex = 0;
        }
        SceneManager.LoadScene(proximaCenaIndex);
    }

    void reLoadNivel()
    {
        //ou SceneManager.LoadScene(0); // é a primeira ou com o nome
        //ou SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); //voltamos ao inicio
        //ou
        int cenaCorrenteIndex = SceneManager.GetActiveScene().buildIndex;
        SceneManager.LoadScene(cenaCorrenteIndex);
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movimento : MonoBehaviour //herança : MonoBehaviour
{
    Rigidbody rb;
    [SerializeField] float forcaDoTrust = 100.0f;
    [SerializeField] float rotacaoDoTrust = 1.0f;
    
    //audio
    AudioSource ruidoMotor;
    [SerializeField] AudioClip motorFogetao;

    //sistema de particulas do motor
    [SerializeField] ParticleSystem motorFogetaoParticulas;
    [SerializeField] ParticleSystem motorEsquerdaFogetaoParticulas;
    [SerializeField] ParticleSystem motorDireitaFogetaoParticulas;
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        //audio
        ruidoMotor = GetComponent<AudioSource>();
        ruidoMotor.Stop();
        motorFogetaoParticulas.Stop();
    }
    
    void Update()
    {
        InteratividadeThrust();
        InteratividadeRotacao();
    }

    void InteratividadeThrust()
    {
        //getKeyDown: só para saber se ele primiu a tecla
        //ou (Input.GetKey("up")) ou (Input.GetKey(KeyCode.UpArrow)) //duas escolhas, diferentes signatures
        if(Input.GetKey(KeyCode.Space))
        {
            InicioThrust();
        }
        else
        {
            PararThrust();
        }
    }

    void InicioThrust()
    {
        Debug.Log("Foi pressionado a tecla de SPACE");
        //rb.AddRelativeForce(0,1,0); //Vector3 são 3 valores:xyz 
        //Vector3 permite aceder à direcção e velocidade
        rb.AddRelativeForce(Vector3.up * forcaDoTrust * Time.deltaTime);
        //equivalente a rb.AddRelativeForce(0,1,0);
        //audio
        if (!ruidoMotor.isPlaying)
        {
            //ruidoMotor.Play(); //só para um som
            ruidoMotor.PlayOneShot(motorFogetao);
        }
        //particulas
        if (!motorFogetaoParticulas.isPlaying)
        {
            motorFogetaoParticulas.Play();
        }
    }

   void PararThrust()
    {
        ruidoMotor.Stop();
        motorFogetaoParticulas.Stop();
    }
    void InteratividadeRotacao()
    {
        if(Input.GetKey(KeyCode.A))
        {
            RotacaoEsquerda();
        }
        else if(Input.GetKey(KeyCode.D))
        {
            RotacaoDireita();
        }
        else
        {
            PararRotacao();
        }
    }

 void RotacaoEsquerda()
    {
        Debug.Log("Foi pressionado a tecla de A");
        RotacaoMetodo(rotacaoDoTrust); //xyz: 0,0,1
        if (!motorDireitaFogetaoParticulas.isPlaying)
        {
            motorDireitaFogetaoParticulas.Play();
        }
    }
     void RotacaoDireita()
    {
        Debug.Log("Foi pressionado a tecla de D");
        //transform.Rotate(-Vector3.forward * rotacaoDoTrust * Time.deltaTime); //xyz: 0,0,1
        //ou transform.Rotate(Vector3.back * rotacaoDoTrust * Time.deltaTime); //xyz: 1,0,0
        if (!motorEsquerdaFogetaoParticulas.isPlaying)
        {
            motorEsquerdaFogetaoParticulas.Play();
        }
        RotacaoMetodo(-rotacaoDoTrust);
    }
    private void PararRotacao()
    {
        motorDireitaFogetaoParticulas.Stop();
        motorEsquerdaFogetaoParticulas.Stop();
    }

    void RotacaoMetodo(float rotacaoDesteFrame)
    {
        //freezar o sistema de rotação não deixar o sistema de fisica tomar posse
        rb.freezeRotation = true; //para rodar manualmente
        transform.Rotate(Vector3.forward * rotacaoDesteFrame * Time.deltaTime);
        rb.freezeRotation = false; // unfreezar para que o sistema de fisica tome conta das ações
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class oscilador : MonoBehaviour
{
    Vector3 posicaoDeInicio;
    [SerializeField] Vector3 vectorDeMovimento;
    //slider
    [SerializeField] [Range(0,1)] float vectorDeFactor;

    //periodo de tempo
    [SerializeField] float periodo = 2f;

    void Start()
    {
        //posição inciial
        posicaoDeInicio = transform.position;
        Debug.Log(posicaoDeInicio);
    }

    // Update is called once per frame
    void Update()
    {
        //para medir o tempo..
       /*
        if(periodo == 0f){
            //protecção
            return;
        }
        */
        //por ser float a comparação com == pode comprometer.
         if(periodo <= Mathf.Epsilon){
            //protecção
            return;
        }
        float ciclos = Time.time / periodo; //vai crescendo com o tempo
        //usar Tau, o tal Pi que não é pi e tem em conta o raio
        const float tau = Mathf.PI * 2; // o valor constante de 6.283

        float rawSenoOnda = Mathf.Sin(ciclos * tau); //andar entre -1 e 1 
        Debug.Log(rawSenoOnda);

        vectorDeFactor = (rawSenoOnda + 1f) / 2f; //calculo que vai de 0 a 1

     Vector3 offset = vectorDeMovimento * vectorDeFactor;
     transform.position = posicaoDeInicio + offset;   
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class QuitJogo : MonoBehaviour
{
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Escape))
        {
            Debug.Log("Terminou o jogo!!!");
            Application.Quit();
        }
    }
}
Tags : , ,

Parte2 – o meu projeto (aprender)

o GameDesign deste projeto:
a experiência do jogador ( player experience ) : agilidade
a mecânica do jogo ( core mechanic ) : movimentos, e de evitar obstáculos
o modo continuo do jogo ( game loop ): ir de a para b

coisas interessantes:
a função Time.deltaTime
usar o cinemachine (para termos acesso a diferentes camaras) +infos: LINK
box colider (lidar com as colisões)
rigidbody (vai permitir trabalhar as colisões, lidar com problemas de rotação, através de congelar (freeze nos constrains)
cores +infos: LINK
GameObject.GetComponent + infos: LINK
Time.time +infos: LINK
Tags +infos: LINK
Transform +infos: LINK

algum código:

 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ColisaoMuros : MonoBehaviour
{
    private void OnCollisionEnter(Collision other) 
    {
        //Debug.Log("colisao com um muro");
        //Collision, tipo de variavel
        //other, quem colidiu comigo
        //OnCollisionEnter, quando "entra" na colisão
        //se colidirem contigo muda de cor
        //GetComponent<MeshRenderer>().material.color = Color.grey;

        //2) a colisão só deve acontecer se for com o objecto do jogador
        if(other.gameObject.tag == "Player"){
            GetComponent<MeshRenderer>().material.color = Color.grey;
            //mudar a tag
            gameObject.tag = "colisao";
        }
    }
}
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Mover : MonoBehaviour
{
 //para ficar disponivel no inspctor usamos o [SerializeField] 
    //[SerializeField] float andaX = 0.0f;
    //[SerializeField] float andaY = 0.01f;
    //[SerializeField] float andaZ = 0.0f;
    // Start is called before the first frame update
    float andaY = 0.0f;
    [SerializeField]float movimentoVelocidade = 6.0f;
    
    void Start()
    {
        Debug.Log("parte 2 - inicio do jogo");
        ImprimirInstrucoes();
        //para mover
    }

    // Update is called once per frame
    void Update()
    {
        MoverOJogador();
    }

    void ImprimirInstrucoes(){
        Debug.Log("Bem vindo ao jogo");
        Debug.Log("Move o jogador com as setas ou WSAD");
        Debug.Log("Não vás contras os muros..");
    }
    void MoverOJogador(){
        float andaX = Input.GetAxis("Horizontal")*Time.deltaTime*movimentoVelocidade;
        float andaZ = Input.GetAxis("Vertical")*Time.deltaTime*movimentoVelocidade;
        transform.Translate(andaX, andaY, andaZ);
    }
}
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Pontuacao : MonoBehaviour
{
    int pontuacao = 0;
    private void OnCollisionEnter(Collision other) {

        if(other.gameObject.tag != "colisao"){
            pontuacao=pontuacao+1;
            Debug.Log("pontos: "+pontuacao);
        }
    }
}
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Queda : MonoBehaviour
{
    [SerializeField] float TempoACorrer = 3.0f;
    MeshRenderer rendererizacao;
    Rigidbody corpoDoMuro;
    void Start() {
        //esconder a mesh do objeto
        //GetComponent<MeshRenderer>().enabled = false;
        rendererizacao = GetComponent<MeshRenderer>();
        rendererizacao.enabled = false;

        corpoDoMuro = GetComponent<Rigidbody>();
        corpoDoMuro.useGravity = false;
    }
    void Update()
    {
        //Time.time, o tempo que passou desde o inicio de play no jogo
        //Debug.Log(Time.time);
        if(Time.time > TempoACorrer){
            //Debug.Log("ja passaram 3 segundos");
            rendererizacao.enabled = true;
            corpoDoMuro.useGravity = true;
        }
    }
}
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Roda : MonoBehaviour
{

[SerializeField] float rodaX = 0.0f;
[SerializeField] float rodaY = 0.50f;
[SerializeField] float rodaZ = 0.0f;

    // Update is called once per frame
    void Update()
    {
        transform.Rotate(rodaX,rodaY,rodaZ);
    }
}
Tags : , ,

Parte1 – o meu projeto (aprender)

coisas interessantes:
tecla F para centrar no objeto que queremos,
realizar um reset nas propriedades com o lado direito do rato no inspetor,
alt+botão esquerdo do rato, selecionado o objeto podemos mover em torno dele

coisas usadas e instaladas:
visual studio code
no VSC instalar o Unity Code Snippets
no VSC instalar o C#

Tags : , ,

Teclas de atalho no Unity

ou

Tags : , ,

Instalação do Unity

Provavelmente por já ter tido uma instalação de uma versão do Unity, e que foi apenas removida pelo uso do Add/Remove programs em ambiente windows, tive problemas em voltar a instalar.

Surgia sempre o erro de “Installation Aborted” instalação ficava a meio caminho.

A solução foi instalar a interface (hub) de instalação do Unity mais antigo deste local (LINK) e de seguida fui instalar o hub da versão mais recente e funcionou!

Vou usar a versão do Unity 2020.2.4f1, parece que é a mais recente e é uma versão final..

+infos(sobre o erro): LINK

Tags : , ,

Caravel: Set Forth

“Caravel: Set Forth”, mais um jogo com malta portuguesa no desenvolvimento :)

+infos(oficial): https://www.caravelgame.com/

Tags : ,

Novo curso online pela Gamedev.tv

A malta da Gamedev.tv está a disponibilizar mais um curso online com o Unity: Unity Multiplayer: Intermediate C# Coding & Networking. Desta vez é um curso com o qual tenho um particular interesse já que é sobre o desenvolvimento de um RTS com a possibilidade de ser jogado com dois ou mais jogadores.

+infos(oficial): LINK

Tags : , ,

Referências acerca do motor Godot!

Godot Tutorials (2D, GDScript, Programming Basics).
Emilio (2D, GDScript and VisualScript).
GDQuest (2D and 3D, GDScript, VisualScript and C#).
Game Development Channel (2D, GDScript).
Game Endeavor (2D, GDScript).
Game from Scratch (2D and 3D, GDScript and C#).
HeartBeast (2D, GDScript).
Jeremy Bullock (2D and 3D, GDScript, VisualScript and C#).
KidsCanCode (2D and 3D, GDScript and VisualScript).
Mister Taft Creates (2D, GDScript).
Miziziziz (2D, GDScript).
P1X / Krzysztof Jankowski (3D).
Pigdev (2D, GDScript).
Steincodes (2D, GDScript and VisualScript).
TheBuffED (2D, GDScript).
Code with Tom (2D and 3D, GDScript).
BornCG (3D, GDScript).
Gonkee (2D, 3D, GDScript, Shaders).

+infos(oficial): LINK

Tags : , ,

Criando jogos com Flutter e Flame, com Renan Araújo

Não conhecia esta “framework” de nome Flutter (made by Google), parece interessante para o desenvolvimento de apps hibridas, mas também dá para jogos usando o Flame. Fica a referência para um pequeno workshop online acerca deste tema.

+infos(o video): https://youtu.be/0nl6CZJiFnY?t=4456

+infos(o autor): http://caraujo.me/

+infos(flutter): https://flutter.dev/

+infos(flame): https://pub.dev/packages/flame

Tags : , , ,

Cursos e aprendizagens online (Unity)

Coleção interessantes sobre alguns dos assuntos de trabalhar com o Unity

+infos(): https://www.raywenderlich.com/unity

Tags :

Brackeys, the end.

O canal de youtube e comunidade do Brackeys vai terminar. Foi dos primeiros canais que segui já que tem vídeos muito interessantes para explicar o uso do Unity e assuntos correlacionados como é o caso da linguagem de programação c# ou de modelação de objectos.

Os vídeos e os outros canais de suporte vão ficar activos, apesar do projeto terminar.

+infos(listas no youtube): LINK

+infos(página oficial): https://brackeys.com/

Tags : , , ,

Concurso js13kGames

E que tal entrar num concurso para desenvolver um jogo, durante um mês? requisito o jogo tem que ser desenvolvido em javascript, numa qualquer biblioteca, e só pode ocupar 13k no máximo!

“We want to kick-start 2020’s JS13kGames coding competition with you. Together with the competition’s creator, game developer and Mozilla Tech Speaker Andrzej Mazur, you will learn about the competition’s history, this year’s theme and tips for the upcoming month of coding.

Js13kGames is a JavaScript coding competition for HTML5 Game Developers. The fun part is the file size limit set to 13 kilobytes. The competition starts on Tuesday (August 13th) and runs for an entire month. The theme for 2020 will be announced on 13th August.”

interessante também a quantidade de referências que este site tem acerca de ferramentas para o desenvolvimento de videojogos

+infos(oficial): https://js13kgames.com/

Tags : ,

Humble Game Creator bundle (uma campanha)

Um conjunto de assets para o desenvolvimentos dos jogos, e da lista consta:

Music:
Locked contentTales Of The Far East
Inspirational Music Pack Vol 1
Retro Music Pack
16-Bit Fantasy Action Music Pack
Grand Adventure Music Mega Pack
Madness Music Pack
Inspirational Music Pack Vol 2
Inspirational Music Pack Vol 3
Inspirational Music Pack Vol 4
Dragon’s Den Resource Pack
Survival Horror Music Mega-Pack Vol.2
Nightmares Music Pack
Classical Adventure
Medieval Music Pack
Creature Feature SFX

Graphics:
Sci-Fi Backgrounds
Backgrounds
2.5D Character Pieces Vol. 2
PVGames Sci-Fi Game Assets
Japanese School Interior Game Assets
Forest Graveyard Game Assets
2.5D Character Pieces Vol. 3
Batting Center Game Assets
2.5D Character Pieces Vol. 1
Pixel Animations And Effects
Train Station Game Assets
2.5D Medieval Buildings Vol. 2
2.5D Medieval Buildings Vol. 1
Kanagawa Game Assets
Omega Modern Graphics Pack
Japanese Arcade Game Assets + Music
Mythos: Reawakening
2.5D Monsters: Daemonum Infernum
2.5D Nature Pack Vol. 1

Sprites:
Horror City Sprite Pack 1
Horror City Sprite Pack 2

Tileset:
CyberPop Interior Tiles
Horror City Sewer & Factory Tiles
Japanese Urban Accessories Pack
Horror City Tile Pack

Battlers:
Seraph Circle Monster Pack II
RPG Battlers 3rd 50 Monsters
RPG Battlers 5th 50 Monsters Shades of Battle
Seraph Circle Monster Pack I
RPG Battlers 2nd 50 Monsters
RPG Battlers 1st 50 Monsters
RPG Battlers 4th 50 Monsters
RPG Battlers 6th 50 Monsters Evolution
Badass Bosses Monster Pack
Sci-Fi Foes Monster Pack
Fantasy Beasts Monster Pack
PV Games Humble Bundle Exclusive Pack
Seraph Circle Monster Pack III

Software:
001 Game Creator
Pixelmash

+infos(campanha): LINK

Tags : , , , , , ,

Mais um canal.. com o Godot

Encontrei este canal com vídeos recentes e interessantes acerca do desenvolvimento de um videojogos com o motor Godot.

+infos(youtube): LINK

Tags : , ,

5 Tips for awesome Game Design Docs

Da índia surge um developer que dá algumas dicas acerca dos Game Design Docs:
#1 always make a revision history and table of contents
#2 use mockups sketches references
#3 create asset lists
#4 customize your GDD
#5 update your GDD

+infos(o video): https://youtu.be/dgaUiGF9mkI

Tags : , ,

Assets de batalhas (WW)

A malta da Synty Store disponibilizou mais um pack de batalha e desta vez com referência à primeira guerra mundial. Para se ter acesso a este pack é necessário já ter o pack de guerra e o custo final de tudo é de:
POLYGON – War Pack – 80 euros
POLYGON – War Map – WWI – 18 euros

Assim e pelo POLYGON – War Map – WWI:

POLYGON – War Pack

+infos(War Map – WWI): https://syntystore.com/products/polygon-war-map-wwi

+infos(War Pack): https://syntystore.com/products/polygon-war-pack

Tags : , ,

Humble RPG game development assets bundle: 2d art, music and sound effects (uma campanha)

Um conjunto de objetos para ajudar no desenvolvimento de videojogos do género RPG, da lista consta:
2D Characters Male
2D Hand Painted Mine Tileset
2D Hand Painted Snowland Tileset
58 Fantasy RPG Items
Souls RPG Graphics – Town Tileset
Souls RPG Graphics Tiles – Grasslands
Ancient Game SFX Pack
Clean City Game Assets
Cute RPG UI Kit
Dark RPG Chiptune Soundtrack Bundle
Dialogue Boxes
Dwarves vs Elves RPG Sprites
Elemental Magic Sound Effects Vol 1
Elemental Magic Sound Effects Vol 2
Fantasy Character Bundle
Fantasy RPG Items Vol 2
Farm & Fort Tileset & Icons
Forest Isometric Block Tileset
Frozen Village Isometric Block Tileset
Hand Painted Extra Objects Tileset
Human Fantasy Animated Pack
Interface SFX
Inventory Sounds Pack
Japanese Bar Interior Assets
Japanese City Game Assets
JRPG Character Pack
JRPG Music Pack
Lighthearted RPG Location Soundtrack Bundle
Lighthearted RPG Soundtrack Bundle
Medieval RPG UI Kit
MMORPG UI Kit
Monster Creature Animated Pack
Monster Creature Super Mix
Osaka City Game Assets
Pixel Art Beach Tile Set
Pixel Art Forest Road
Pixel Art Medieval Fantasy Characters
Pixel Art Medieval Interiors
Pixel Art Medieval UI Pack
Pixel Art Old Castle
Pixel Art Town
RPG Inventory – Fantasy Battles Axes
RPG Inventory – Fantasy Bows
RPG Inventory – Fantasy Daggers
RPG Inventory – Fantasy Potions
RPG Inventory – Fantasy Spears
RPG Inventory – Fantasy Swords
RPG Music Pack – Complete Collection
Side View Animated RPG Battlers
Souls RPG Graphics – Desert Tileset
Soul’s RPG Graphics – Sprites
Spells & Ability Icons
Survival Icons
Tyler Warren RPG Battlers Pixel Style
Warrior Adventure Game Characters

+infos(campanha): LINK

Tags : , , , , , ,

Humble Learning game coding and development bundle (uma campanha)

Está a decorrer uma campanha com referências a cursos para aprender a programar jogos e a desenvolver. Da campanha surge a lista de:
Applied Computer Vision with Unity and Azure
Battle Royale – Multiplayer Projects
Build a Micro-Strategy Game
Build an RPG Adventure in Phaser
C++ Programming for Beginners
Create a 2D RPG with Godot
Create Your First 3D Game with Unity
Develop a Puzzle Platformer Game
EasyAR and Marker-Based Apps for Beginners
Godot Game Development for Beginners
Humanoid Animation Tools for Beginners
Intro to Game Development with Unity
Intro to Multiplayer Game Development
Learn C++ by Making a Text-Based RPG
Player Authentication with Azure PlayFab
Python Programming by Making a Game
Real-time Strategy Project – Unit Movement
RPG – Multiplayer Projects
RPG Development with Phaser
The Complete Blender Course
The Complete Procedural Terrain Generation Course
Tile-Based Math Game Project
Turn-Based Game – Multiplayer Projects
Unity 2D Projects – Super Plumbers
Unity Cinemachine for Films and Games

+infos(a campanha): LINK

ps_ eu até achei interessante esta campanha por causa de alguns dos cursos que ele tem, contudo uma análise com mais critério apercebi-me que afinal estes cursos são cursos que fazem parte de um pack mais completo da malta da zenva.com nomeadamente do percurso Strategy Game Development Academy e que prefazem um total de 12 cursos online

Tags : , , , , ,

Uma lista colaborativa acerca de ferramentas open-source #opensource

Tiny/weirdo game engines:

Game engines that let you make a full game, but often within a particular style, ethos, framework, or with other limitations. Generally quick to pick up and work with, made for accessibility.

  • Flickgame – A truly tiny engine, link frames to other frames. Share online or export. 
  • GB Studio – A drag and drop gameboy interface that lets you do some scripting. Export to html or an actual gameboy rom! 
  • Bitsy – Bitsy is a simple sprite-based editor that lets you build rooms & worlds. Walk around and talk to people and be somewhere. Has a strong community.
  • Borksy / Bitsy HD / bitsy hacks / bitsy mixer template – Hacks that extend the functionality of bitsy in various ways.
  • Flicksy – A tool for drawing and assembling graphical hypertext games – lets you import drawings!
  • Mosi – Similar to bitsy, but with more color & sound support, and more advanced scripting options.
  • Bravitzlana – A tool for making small interactive scenes (3d! kind of) that you can share with people.
  • PuzzleScript – An open source, HTML5 puzzle-game oriented editor.
  • Dungeonscript – Puzzlescript, but first person
  • RPG Paper Maker – An extremely cute jrpg-focused engine that lets you place flat sprites in a 3d world. (free, but $70 if you sell your game commercially)
  • Flatgames / Flatpack – Flatgames are as much a concept as engine (2d, a raw combination of movement, art and sound), but Flatpack bundles those ideas up into a tool that you can import into Unity or run on Android.
  • Tiny Game Maker – For small, one screen games without programming.
  • Kooltool – An experimental game making tool which has Kidpix vibes.
  • The Unfolding Game Engine – One to watch (in early access right now). A “paint a world” engine that lets you make your world while playing it. 2.5d. 
  • Multiverse – Not out yet – a storytelling and game making tools/game.
  • Bitmelo – A game editor and engine for making small pixel art games. In early access, exports to HTML5. 
  • Sok Worlds ($3) – A truly wild game/tool where you make and explore 3d collage worlds (images from the pixabay API, but there are over a million to choose from.).
  • Sok Stories ($3) – A drawing-based way to make and share games.
  • Playscii – Also an ascii art and animation program, but the game mode documented here: http://vectorpoem.com/playscii/howto_game.html 
  • Wick Editor – Also an animation program- a friendly flash-like for multimedia projects that allows interaction and game-like play. 
  • Unicorn Console – A “a quick and dirty engine … with a resolution of 400×240 pixels.”
  • Vipercard – An open source reimagining of 1987’s Hypercard.
  • Twine – An open-source tool for telling interactive, nonlinear stories. Has a big community and multiple versions and themes.
  • Choicescript  – Like Twine, but for more traditional CYOA gamebooks-with-stats. Tight community on the forums.
  • Tiny Choice – The tiniest of twine-likes, written in the browser.
  • Inform – A design system for interactive fiction which has been around for a while!
  • Ink – A narrative engine designed to slot into a game engine.
  • StudyCrafter – A scratch-like platform where you can play, share, and create interactive projects, on the browser or offline, and collect data from players. 
  • Inklewriter – The “baby” Ink, runs in browser and great for CYOA, same UI as Sorcery!
  • The Adliberum Engine – (Free but on Steam, early access) Make text adventures, muds and text-powered roleplaying games.
  • Yarn Spinner – The friendly tool for writing game dialogue. 
  • Cheap Bots Done Quick – A site where you can make a twitterbot today.

Indie/open source bigger game engines: 

Indie and open source game engines with more flexibility and power than the little engines above, and generally also another layer of complication. (Perhaps most useful for if you are concerned about free but closed-source engines like Unity.)

  • Superpowers – HTML5 2d + 3d engine, coding in Typescript.
  • HaxeFlixel – Cross-platform development, open source
  • Godot – Perhaps the most complete and well documented open source engine, for 2d and 3d.
  • Heaps – A free and open source cross platform graphics engine written in Haxe.
  • DOME – A framework for making 2D games using the Wren programming language.
  • luxe – In development: a 2d-focused engine, code in Wren.
  • LITIENGINE – A free and open source Java 2D Game Engine.
  • Starling – A Cross Platform Game Engine.
  • LÖVR – An open source framework for rapidly building VR experiences in Lua.
  • Ren’Py – Free, open source cross-platform Visual Novel development engine.
  • Adventure Game Studio – Free engine for making point & click adventure games.
  • Phaser.io – Desktop and mobile HTML5 game framework, using javascript.
  • Pixelbox.js – Combination editor and a simple JavaScript library.
  • Amulet – A free Lua-based audio/visual toolkit suitable for small games and experimentation, with online editor.

Fantasy consoles: 

A fantasy console is like a regular console (machine specs, dev tools, community), but without hardware. It is like an emulator for a machine that never existed. Generally, these are in the form of an application.

  • Pico8 ($15) – probably the most popular fantasy console for game dev, pico8 has harsh limitations but that are intentionally chosen. code is written in lua. export to standalone HTML+JS or PNG (fantasy cartridge, need pico8 to play)
  • Tic-80 – coding in lua and moonscript. export to html or .tic. 
  • Pixel Vision 8 (free, pro version is $30) – a no-console fantasy computer, navigate like the familiar icon-based desktops you know. 
  • LIKO-12 – Entirely open-source and free, written in Lua. The dev says: “Why did I develop this? Because I wanted to buy PICO-8 but that’s not possible without credit cards (no internet shopping in Syria)”
  • Pix64 – an extremely tiny fantasy console (64×64 px).
  • Homegirl Pro – A fantasy console with a very different vibe! This one dispenses of pixel nostalgia and is modeled after a Commodore Amiga. Coding in Lua. 
  • VectorBoy – Again, a fantasy console that breaks the mold – VectorBoy uses straight lines to emulate vector graphics.
  • VVpet – A fantasy console for LCD virtual pet games
  • Voxatron – ($20, come with Pico-8) Fantasy Console for voxel (3d pixel, kind of?) games. 
  • LowRes NX – BASIC programming on iOS, as well as desktops.
  • Pyxel – A retro game engine for Python
  • Zany80 – A fantasy console designed around the Z80 processor.
  • Riko4 – A Fantasy Console intended as a tool for pixel art game development.
  • ECoS – A modern fantasy console with Entity-Component-System modular architecture.
  • Nano JAMMER – A truly tiny console that runs in the browser and integrates into Google Drive. Code in the nano programming language. 
  • Rewtro – A wild little console that runs games encoded in a very small amount of data, meaning they can be printed as qr-codes.
  • Script-8 – A fantasy computer for making, sharing, and playing tiny retro-looking games. Free, browser-based, and open-source. Code in Javascript

Didn’t find what you were looking for? Just into fantasy consoles? More of them detailed here: https://github.com/paladin-t/fantasy 

Neat Unity extenders:

Tools or plug-ins that change the experience of using Unity.

  • Oikospiel-tools – Trigger-based tools for Unity for crafting games without programming.
  • Unity Bitmap Drawing – A library for adding real-time drawing to your Unity project.
  • Clayxels – Adds tiny voxels that seamlessly blend together like clay.
  • unity-wave-function-collapse – Bitmap & tilemap generation from a single example.
  • Tessera (5$)- 2d / 3d wave function collapse generation.
  • Borderless Unity Windows – A tiny tool for making Unity frameless apps from script.
  • First Person Drifter – The original drifting game controller. Download an updated package for Unity 2019 from me here
  • Unity Recorder – An editor-only tool that captures video and animation data during gameplay.
  • Bobbin – A small Unity editor tool that can automatically download and import anything with a URL into the project.
  • Meshedit ($35) – A Unity extension that lets you create and texture models from scratch.
  • Doodlestudio 95 ($45) – A FUN drawing and animation tool for Unity.
  • Raymarching Toolkit ($75) – A Unity add-on for editing raymarched scenes live.
  • Path CreatorPath creation asset for Unity game development
  • NaughtyAttributes – Create powerful inspectors without the need for custom editors.
  • UCLA Game Lab Mesh Creator – Extrudes 2D drawings into 3D objects.
  • Rhythm beat mapper ($45) – Synchronizes gameplay to music in your video game.
  • JPEG-MP4-Compression – recreates the effect of JPEG/MP4 compression as a PostProcessing Effect.

Godot Extenders:

Tools or plug-ins that change the experience of using Godot.

  • WAT – An automated testing framework for Godot built entirely within Godot itself

Maps, place, & levels:

Tools for making maps & levels – some of them simply visual, others generate data.

  • Tiled – The standard free, easy to use and flexible level editor.
  • OGMO – A free, open source, project oriented level editor. 
  • Tilesetter – Tileset designing made easy.
  • SPARTAN Procedural Tile Generator – A pixel art drawing and animation tool specialised in creating tiles and animated sprites for games.
  • Medieval Fantasy Town Generator – Generates a random medieval city layout of a requested size & can export to JSON.
  • City Viewer – The city viewer to see the above/other maps in 3d!
  • One Page Dungeon – A very simple one page dungeon generator.
  • Map Generator – A cellular automata tool for building custom maps, envisioned for use in tabletop roleplaying games.
  • Paper Dungeon Maker – A very little map generator with optional csv output.
  • RPG Map II – A tabletop oriented map editor with clean and simple design.
  • Snazzy Maps – Nice map stylings for Google Maps.
  • Google Earth Studio – Automate flying about the world.
  • Topo Topo – Get a little square of 3d elevation data, anywhere.
  • Nototo – Build and visualize all your notes, as a map
  • terrain.party – nice interface for getting terrain heightmaps anywhere in the world

+infos(fonte): http://everest-pipkin.com/teaching/tools.html

Tags : , ,

A ler: What is the best game engine for your game? e What is the best game engine: is Unity right for you?

Encontrei estes post do site gamesindustry.biz, cuja autora é Marie Dealessandri, e que apresenta uma discussão interessante acerca de software para o desenvolvimento de videojogos:
What is the best game engine for your game?
What is the best game engine: is Unity right for you?

+infos(link1): What is the best game engine for your game?
+infos(link2): What is the best game engine: is Unity right for you?

Tags : ,

5th International Conference on Game Jams, Hackathons and Game Creation Events (conferência)

Chamada de trabalhos até 26 de abril, sendo que os temas são:
Communication skills
Games Done Quick
Community building
Group dynamics
Creativity
Ideation
Educational dimension of game jams and hackathons
Incentives and rewards in game jams and hackathons
Game design issues in game jams
Learning in game jams and hackathons
Game jam and hackathon attendance: who and why?
Makerspaces
Game jam and hackathon impacts
Rapid game development
Game jam and hackathon methodologies
Team formation
Game jam and hackathon resources and assets
Theme development

Os trabalhos apresentados nesta conferência podem ser consultados, em:
ICGJ 2016 (LINK)
ICGJ 2017 (LINK)
ICGJ 2018 (LINK)
ICGJ 2019 (LINK)

+infos(oficial): LINK

Tags : , , ,

Kenney Game Assets (promoção mais umas horas)

O Kenney, para comemorar os 10 anos, tem um conjunto de assets (para ajudar no desenvolvimento de videojogos) disponivel e a titulo gratuito para quem os quiser :D

A promoção termina hoje dia 21 de março… mais uma 10 horas. (em setembro do ano passado ele tinha libertado estes mesmos assets :P )

+infos(promoção): LINK

+infos(Kenney): https://www.kenney.nl/

 

Tags : , , ,