Category: XNA

Playing around with Xbox controller

Posted on 2:27pm 12/24/2007 by Bruno Silva in .NET, Programming, XBox 360, XNA

Xbox 360 Controller

This Christmas a friend gave me a Xbox wired controller. I don’t have a Xbox 360, but I wanted to try XNA development and use the controller to develop some different user-interfaces on windows-based applications. This weekend I managed to put the first pieces to work :)

Based on XNA framework which has support for Xbox 360 controller I built an component that you can drag and drop into your windows forms application. You can assign each control instance to a different controller (up to 4) and set the interval between hardware changes checking (the default is 100 miliseconds). This component raises events when the controller status changes. It has a general onChange event, and an event for each button, trigger and stick status change. It has also a method to control the controller vibration.

This component is not a big deal. When it is instantiated, the component creates a new thread which waits for a period of time before returning into the main thread. When it returns it checks for controller changes using the Microsoft.Xna.Framework.Input.GamePad class. This check is made by comparing the current GamePadState with the previous one. For each change it is raised an event to which you can subscribe in your windows application. I tried to use it in a WPF application. It worked, but I had to create the component in code. It didn’t appear in the toolbox.

You can download the component source code and an example here. I added some comments into the code, but I think that it is pretty simple to understand even to people with little experience with C#. Any question/suggestion feel free to comment!

I’ve tried it in a virtual machine in order to find out the software requirements. I had to install XNA Game Studio 2.0 to put it to work… The XNA redistributable wasn’t enough. If someone can tell me how to distribute my examples with minimum software requirements I’ll be glad to hear from you ;)

This is also a great change for you to try Visual Studio 2008, since the solution in the zip package has to be opened in VS2008. If you don’t have access to this software, or you’re having trouble migrating the code into a VS2005 environment just tell me, and I will help you out.

As soon as I develop some applications using Xbox controller I’ll publish them here in my blog.

XNA Tutorials

Posted on 12:18pm 12/18/2007 by Bruno Silva in Microsoft Student Partners, Programming, XNA

I just want to leave this reference to a blog where you can find some XNA webcasts made by some Italian students.

http://xnalearners.spaces.live.com

15º Encontro Português de Computação Gráfica - Workshop XNA

Posted on 6:21pm 10/15/2007 by Bruno Silva in Events, Microsoft Student Partners, XBox 360, XNA

Hoje tive oportunidade de assistir a um workshop de XNA no âmbito do 15º EPCG.

09.00 - Welcome
Graças ao belo trânsito do IC19 cheguei só às 9:25, pelo que desta parte nada tenho a dizer ;-)
09.10 - XNA Overview (Vitor Santos)
Cheguei ao evento estava o Vitor Santos a falar sobre XNA. O que retive da apresentação foi a potencialidade do XNA como plataforma de desenvolvimento de jogos aplicada ao ensino.
Uma das grandes vantagens da framework XNA, é ser comum ao desenvolvimento para Windows e Xbox (o que muda é a framework abaixo, que no caso da Xbox 360 é um subset da .NET Compact Framework). Esta abstracção de plataforma pode permitir no futuro desenvolvimento de jogos para sistemas mobile, por exemplo.
Pelos mecanismos básicos comuns ao desenvolvimento de jogos virem embutidos na framework, o desenvolvimento é rápido, e o programador pode ver desde cedo os resultados.
O XNA contempla funcionalidades como Graficos, Audio, Input, Matemática, Armazenamento, Física.
Alguns mitos que foram referidos como errados foram:

  • O facto de um jogo sem rede não poder ser interessante;
  • Termos jogos em managed code ser incompatível com uma boa performance;
  • XNA ser apenas para desenvolvimento em X-Box;
  • Game Developpers a sério não usam XNA;
  • O IDE de XNA é pago.

Falou-se do futuro da Xbox. A framework 2.0 codename Shaman.
Como potencialidades tem o networking e suporte para o Xbox Live, melhoria de performance, suporte pelo Visual Studio 2005, lançamento de ferramentas para modelos 2D/3D. Está contemplada a hipótese de ter a versão 1.0 e 2.0 a correr em paralelo, por se prever incompatibilidade entre elas.

09:40 - Desenvolvendo jogos com XNA: Consumidores como Criadores! (Amintas Neto - Microsoft Brasil)
Falou-se da experiência de XNA no Brasil. Foi o ano passado lançado um desafio para desenvolvimento de uma versão “quitada” do SpaceWars em 15 dias, para estudantes. A adesão foi muito boa. Foi mostrada o jogo vencedor. O principal elemento foi o controlo por voz, que permitia a existência de 3 naves em jogo, sendo uma delas controlada normalmente pelo teclado, e o resto da equipa recebendo instruções por voz. Estava muito giro!
O Amintas Neto mostrou que não é preciso uma Xbox para desenvolvimento, ao usar um comando da mesma ligado ao PC. É de realçar que já existem no mundo mais de 50 comunidades de XNA em mais de 8 línguas.
Pelas facilidades de abstracção providenciada pela framework dá espaço para o ensino de tópicos de informática, redes (multiplayer), Inteligência Artificial, Motor de Jogos, Computação Gráfica, Desenvolvimento em Equipa, pode ser usado para facilmente por a funcionar um jogo com modelos 3D em 3D Studio Max, por exemplo.
O concurso que referi acima (XNA Challenge) vai voltar a ser realizado no Brasil, dando desta vez liberdade e tempo para desenvolver um jogo de raíz. A ideia é permitir que os estudantes usem 1 único jogo neste desafio e no Imagine Cup 2008.

10.50 - Coffee break

Mais uns minutos para o pessoal jogar Xbox e por a conversa em dia!

11:00 - Desenvolvimento de Jogos em XNA (Verónica Orvalho -Face in Motion)
Esta sessão foi muitíssimo interessante. Não foi tão virada para a tecnologia, mas sim para o mercado dos vídeo-jogos. Como funciona a indústria dos vídeo-jogos e que perfis de profissionais encaixam neste ramo.
Perceber as diferentes fases do desenvolvimento de um jogo, e que o que realmente está em jogo é o jogador final! Este tem de ser desafiado e se divertir. O aspecto visual do jogo deve dar-lhe pistas do funcionamento do jogo.
Uma possível perspectiva dos jogos são a fórmula GAMES = BOOKS + MOVIES + INTERACTIVITY.
Antes de pegar no código há que imaginar uma ideia, definir os objectivos e descrever o jogo. Especificar o jogo antes do implementar é essencial.
A oradora chamou à atenção para a facilidade que teve em portar alguns jogos anteriormente desenvolvidos em outras plataformas para XNA.
Houve apenas um ponto que não achei especialmente feliz. Foi feita uma pequena aplicação em XNA que carregava uma textura para a janela do jogo. Quase tudo automático, pouco código. 5 estrelas!
De seguida a oradora mostrou uma aplicação em C++/Open-GL com imenso código tentando mostrar como realmente o XNA poupava trabalho. No entanto usou uma demo que era completamente diferente da mostrada em XNA, neste caso era desenhado um triângulo com um gradiente de cores entre os vértices.
Teria sido mais proveitoso e auto-explicativo mostrar uma mesma demo desenvolvida em ambas as plataformas. Da forma como foi feito não fiquei com noção da redução das linhas de código.
Espero em breve poder disponibilizar a apresentação utilizada. Vale mesmo a pena ver.

12:00 - Demos XNA (Nelson Correia e Ricardo Portela)
Foram mostradas 2 demos de XNA feitas por 2 MSP’s.
A 1ª delas era um jogo de naves com controlo por voz e com interfaces em WPF. (Nelson Correia) Pode ser encontrada em http://codeplex.com/space
A 2ª é uma versão em XNA do jogo Crypt Raider. (Ricardo Portela)
12:30 - Encerramento
Por fim tivémos tempo para trocar algumas impressões com os oradores e ainda para almoçar, já fora do recinto.

Nota: Só hoje reparei que tinha os comentários restritos a utilizadores registados. Agora já podem comentar sem registo!

© Bruno Silva | Powered by Wordpress