Jump to content
Sign in to follow this  
fillipeweb

[EBOOK] Como criar seu primeiro jogo Android

Recommended Posts

Fala galera, td certo?


Eu acompanho o trabalho do Raphael Dias do [Produção de Jogos] há muito tempo. Sempre fiquei curioso sobre o mercado de desenvolvimento de jogos e depois de assistir aos trinamentos do PDJ, mostrando como qualquer pessoa pode trabalhar com jogos, resolvi explorar esse campo um pouco mais, e desenvolvi um jogo apenas para ver como desenvolver Jogos Android.


Os treinamentos que mexeram comigo:

- Como começar a criar jogos -> http://bit.ly/1XVREG4

- 06 Mitos sobre o desenvolvimento de jogos -> http://bit.ly/1SZ97za


Depois de tudo isso, eu e o PDJ criamos um ebook totalmente grátis, para ajudar nessa jornada de criar um jogo totalmente do zero, mesmo que você nunca tenha desenvolvido um game antes.




Espero que gostem desse ebook, tentei deixar o mais explicado possivel para que todos, independente de nivel de conhecimento em jogos e Android, consigam desenvolver o primeiro jogo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Motta
      Google e Oracle decidem na Suprema Corte briga judicial sobre Android
    • By udkultimate
      Fala galera, blz!!!
       
      Todos vocês aqui me conhecem pelo meu projeto do Port da UDK Engine / UE3 para PS3 e Xbox360: https://forum.imasters.com.br/topic/584217-atualização-da-minha-engine-udk-para-ps3-hen/
       
      E como muitos de vocês sabem, eu estou utilizando essa minha engine para desenvolver meu primeiro game comercial, que pretendo lançar em seguida. Este game trata sobre a Resistência Palestina contra a Ocupação Militar Israelense. Eu sei que esse tema é um tema muito delicado, pois existem vítimas dos dois lados dessa guerra, porém, peço que vocês leiam com atenção esse post para compreender que esse meu game NÃO É "PROPAGANDA TERRORISTA".
       
      Aliás, eu enviei esse meu game para o Ministério da Justiça e Segurança Pública para Aprovação e Classificação Indicativa. Meu projeto foi aprovado e recebeu a classificação indicativa para maiores de 18 anos. Neste link vocês podem verificar essa informação: http://portal.mj.gov.br/ClassificacaoIndicativa/jsps/JogosJustificativaForm.do?select_action=&tbClassificacaoJogo_Analise=0&tbdocumento_numerodoc=08017.001703/2019-04
       

       
      Resumo sobre o Tema do Jogo:
       
      Fursan al-Aqsa - Cavaleiros da Mesquita de al-Aqsa é um jogo de ação em terceira pessoa que retrata a Resistência do Povo Palestino contra a Ocupação Militar Israelense, através da história fictícia de um jovem estudante palestino chamado Ahmad al-Ghazzawi, que foi injustamente torturado e preso por soldados israelenses durante 5 anos, teve toda a sua família morta em um ataque aéreo israelense e agora depois de sair da prisão, ele busca por vingança contra aqueles que o torturaram, mataram a sua família e roubaram a sua pátria.
       

       
      Resumo sobre a História do Jogo:
       
      Ahmad é um jovem muçulmano pacífico, estudante de Bioengenharia, cujo sonho era se dedicar a criação de próteses para ajudar os feridos de guerra a terem uma melhor qualidade de vida. Ele sempre desejou a paz entre Palestinos e Israelenses pelo fato de ver dia a dia como pessoas inocentes, dos dois lados, sofriam com a guerra. Certo dia, ao retornar da Universidade, Ahmad, por decreto do destino, se envolveu, contra sua vontade, em um Protesto onde milhares de Palestinos estavam jogando pedras contra os Soldados Israelenses, pedindo pelo fim da ocupação militar. Ahmad e muitos outras pessoas foram presas nesse protesto e levadas para interrogatório na Delegacia Israelense. As pessoas que estavam de fato envolvidas no protesto, foram executadas, porém, Ahmad, teve sua vida poupada pois as autoridades Israelenses não encontraram nenhum registro de envolvimento de Ahmad em atividades contra soldados Israelenses. Mas ele foi preso, injustamente e sofreu na prisão todos os tipos de torturas e humilhações que um homem pode sofrer. Cinco anos se passaram e Ahmad continuava a sofrer injustamente na prisão, sendo impedido de receber visitas de amigos e familiares. Quando finalmente ele foi autorizado a receber visitas, recebeu o seu primo, trazendo as piores notícias que ele jamais poderia esperar. Ahmad foi informado de que toda sua família foi morta em um ataque aéreo israelense, inclusive sua noiva. Daquele momento então, aquele jovem uma vez pacífico, se transformou em um homem sedento por vingança, e estava decidido a se vingar do Exército Israelense no momento que saísse da prisão.
       
      Um dia antes de sair da prisão, Ahmad recebeu um novo companheiro de cela, um homem chamado Abu Ubayda, cuja condenação seria a pena de morte, no dia seguinte, o mesmo dia em que Ahmad conseguiria sua liberdade. Abu Ubayda contou sua história para Ahmad, de que ele era um Ex Combatente da Resistência Palestina que decidiu formar um novo exército de soldados palestinos com o objetivo de pôr fim a ocupação militar Israelense, o "Fursan al-Aqsa (traduzido para o português: Os Cavaleiros da Mesquita de al-Aqsa)", pois os tradicionais movimentos de Resistência Palestina, com o passar dos anos se corromperam e abandonaram a causa da luta pela Libertação da Palestina.
       
      Esse novo grupo estava preparando um grande ataque a pontos estratégicos do Exército Israelense nas terras ocupadas da Palestina com o objetivo de pôr fim a ocupação militar e libertar a Palestina, a operação "Mohammed al-Ayash" (em homenagem ao nome do grande líder da Resistência Palestina). Mas infelizmente um dos membros do Fursan al-Aqsa era um espião israelense infiltrado, que armou uma cilada para os verdadeiros integrantes do grupo, cilada essa que ocorreu no mesmo dia da operação "Mohammed al-Ayash" e que resultou na morte de todos os soldados do Fursan al-Aqsa e na prisão do líder, Abu Ubayda, agora ferido e condenado à pena de morte.
       
      Ahmad, ao ouvir a história de Abu Ubayda, decidiu completar essa missão por conta própria, mesmo sabendo dos riscos dessa operação, com a consciência de que esta missão pode resultar em sua morte. E no momento que ele saiu da prisão, ele recebeu de Abu Ubayda todas as instruções da operação "Mohammed al-Ayash" e a partir daquele momento, Ahmad estava pronto para completar a operação e se vingar daqueles que o torturaram, mataram a sua família e roubaram a sua pátria.
       

       
      Continua na próxima postagem
    • By Israel Lira
      Por gentileza, preciso de ajuda! estou iniciando aqui na comunidade e recente no flutter. Tenho uma missão de utilizar o json e controller dos inputs. Preciso pelo botão (ADD) sair da Primeira tela redirecionar para a Segunda tela, salvar ao colocar os inputs e retornar para a primeira mostrando (nome e valor). O formulário da Segunda Tela terá campos: nome, telefone, data e valor. Quero manter a função dismissible para termos o efeito de arrastar o item da lista. Segue o que estou fazendo mais com erros.
       
      Não sei como proceder e apanhando a vários dias!
        
      import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:path_provider/path_provider.dart'; void main(){ runApp(MaterialApp( home: Home(), )); } class Home extends StatefulWidget { @override _HomeState createState() => _HomeState(); } class _HomeState extends State<Home> { final _toDoController = TextEditingController(); List _toDoList = [SegundaRota]; Map<String, dynamic> _lastRemoved; int _lastRemovedPos; @override void initState() { super.initState(); _readData().then((data) { setState(() { _toDoList = json.decode(data); }); }); } void _addToDo() { setState(() { Map<String, dynamic> newToDo = Map(); newToDo["title"] = _toDoController.text; _toDoController.text = ""; newToDo["ok"] = false; _toDoList.add(newToDo); _saveData(); }); } Future<Null> _refresh() async{ await Future.delayed(Duration(seconds: 1)); setState(() { _toDoList.sort((a, b){ if(a["ok"] && !b["ok"]) return 1; else if(!a["ok"] && b["ok"]) return -1; else return 0; }); _saveData(); }); return null; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Lista de Tarefas"), backgroundColor: Colors.blueAccent, centerTitle: true, ), body: Column( children: <Widget>[ Container( padding: EdgeInsets.fromLTRB(17.0, 1.0, 7.0, 1.0), child: Row( children: <Widget>[ RaisedButton( color: Colors.blueAccent, child: Text("ADD"), textColor: Colors.white, onPressed: () { Navigator.push( context, MaterialPageRoute(builder: (context) => SegundaRota()), ); }, ) ], ), ), Expanded( child: RefreshIndicator(onRefresh: _refresh, child: ListView.builder( padding: EdgeInsets.only(top: 10.0), itemCount: _toDoList.length, itemBuilder: buildItem),), ) ], ), ); } Widget buildItem(BuildContext context, int index){ return Dismissible( key: Key(DateTime.now().millisecondsSinceEpoch.toString()), background: Container( color: Colors.red, child: Align( alignment: Alignment(-0.9, 0.0), child: Icon(Icons.delete, color: Colors.white,), ), ), direction: DismissDirection.startToEnd, child: CheckboxListTile( title: Text(_toDoList[index]["title"]), value: _toDoList[index]["ok"], secondary: CircleAvatar( child: Icon(_toDoList[index]["ok"] ? Icons.check : Icons.error),), onChanged: (c){ setState(() { _toDoList[index]["ok"] = c; _saveData(); }); }, ), onDismissed: (direction){ setState(() { _lastRemoved = Map.from(_toDoList[index]); _lastRemovedPos = index; _toDoList.removeAt(index); _saveData(); final snack = SnackBar( content: Text("Tarefa \"${_lastRemoved["title"]}\" removida!"), action: SnackBarAction(label: "Desfazer", onPressed: () { setState(() { _toDoList.insert(_lastRemovedPos, _lastRemoved); _saveData(); }); }), duration: Duration(seconds: 2), ); Scaffold.of(context).removeCurrentSnackBar(); Scaffold.of(context).showSnackBar(snack); }); }, ); } Future<File> _getFile() async { final directory = await getApplicationDocumentsDirectory(); return File("${directory.path}/data.json"); } Future<File> _saveData() async { String data = json.encode(_toDoList); final file = await _getFile(); return file.writeAsString(data); } Future<String> _readData() async { try { final file = await _getFile(); return file.readAsString(); } catch (e) { return null; } } } class SegundaRota extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Segunda Rota (tela)"), ), body: Column( children: <Widget>[ Container( padding: EdgeInsets.fromLTRB(17.0, 1.0, 7.0, 1.0), child: Row( children: <Widget>[ Expanded( child: TextField( controller: _toDoController, decoration: InputDecoration( labelText: "Nova Tarefa", labelStyle: TextStyle(color: Colors.blueAccent) ), ) ), RaisedButton( color: Colors.blueAccent, child: Text("ADD"), textColor: Colors.white, onPressed: _addToDo, ) ], ), ), Expanded( child: RefreshIndicator(onRefresh: _refresh, child: ListView.builder( padding: EdgeInsets.only(top: 10.0), itemCount: _toDoList.length, itemBuilder: buildItem),), ) ], ), body: Center( child: RaisedButton( onPressed: () { Navigator.pop(context); }, child: Text('Retornar !'), ), ), ); } }  

    • By johny.freitas
      Boa noite, atualmente criamos um app pela plataforma appsheet(no-code).
      porém estou querendo criar uma aplicação própria(junto a equipe, temos 4pessoas), e nao sei em qual linguagem criar.
      precisamos que funcione web(para o pessoal interno) e mobile(android) para os téc em campo.
      estava pesquisando e vi que pelo react native da pra fazer o web e mobile, nao sei se seria o melhor.
      estavamos fazendo pelo android studio, só que lembramos que vai precisar ser acessado pela web e dei uma pausa.
    • By mlbarcelos
      Procuro programador para desenvolver um Quiz Game para android, utilizando a linguagem Java e a biblioteca LibGdx.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.