XNA UK User Group

A helping hand for bedroom coders throughout the land.
in

conkerjoe

  • Unplanned 5 Hour Xna Game

        As many of you already know, I am working franticly with Seloc on our game SBARG, which we hope will put up a good fight in the DBP competition. And believe it or not I have ANOTHER project on the go called IceCream which I will blog about some other time. If the name intrigues you, join us on IRC channel #xna and ask about IceCream and Milkshake, we'll know what you mean :). 

    Because we're so busy I don't have time to blog as much as I'd like to, but I felt I could sanction a few spare minutes to blog about an awesome journey we had last night. So picture the scene, we're discussing all things SBARG, we're very tired from the last few weeks work, as well as a day job, we're often working through the night and on a slacking night it can be 3am before we decide to call it in, so yeah, we're tired, we're hungry and we're not exactly getting much done. So to spice ourselves up we started to chat about our next game, you know, the one after SBARG, we started to look at old Amiga games and Mega Drives games we used to play, it was good just to remind us why we're doing this, for fun, I love games, even the ones that sucked I loved something about them usually. 

    Then we got onto a discussion about how quick you can prototype games to get a feel for something, A few hours are usually enough, anything longer probably requires a budget and a lot of planning before deciding to go ahead. I'm going to take credit for this bit that I'm not going to tell you about but I came up with this genius idea for a game, which lead to the discussion about an even simpler game which you should all know called Rock, Paper Scissors. If you don't know what it is check it out here http://en.wikipedia.org/wiki/Rock-paper-scissors. Brilliantly simple game. We only had to discuss it for 2-3 minutes before we realised it HAD to be done, so while Seloc was still talking, I cranked up Visual Studio and started working on the simple mechanics of a Rock, Paper Scissors game. I stupidly made a comment along the lines of, "You make a brew, and ill have this working by the time im finished drinking it" While I didn't get my brew, i had single player Rock, Paper Scissors working in under 20 minutes, So I believe Seloc still owes me a brew, and an extra brew for winning.

    I just implemented a simple up/down arrow to choose your selection, the computer randomly selected its choice and after a countdown of 3 seconds the winner would be chosen and displayed on screen. So I turn to my right to show Seloc how amazing I am, and I see he's got a screen up with a fancy rock, a pair of scissors, and a piece of paper. He's only gone and generated some cool artwork for our new game. So we have a quick chat about how ridiculous this was and decided to continue :D we are English after all. So I'm waiting around playing against the computer, and winning.. YES!!! But I want to play against Seloc and beat him. So I decided to consider making it live compatible. At this point, I knew we were crazy, but I had not done any xna networking before so I thought worst case, it's a bit of experience so I gave it a shot. I already knew of the brilliant NetworkState sample on creators so I decided to start with that, remember this is just a prototype so using someone else's already working code saved me tons of time. I initially got a little stuck about what to actually do about networking and what structure to put my code in,
    I looked at the Netrumble code to see how they implemented it, and when I say looked, it was a 3 minute glance, its midnight now, I don't have time to read reams of code and luckily, it was really simple. I adopted their method of passing the packettype before the packet data. So I had an enum which contained Timer, GamerScores, GamerSelection, and GameState. For each type of data I wanted to pass I would pass in the relevant enum value first, then the data. For example I would pass the GamerSelection enum then the current selection of the local player. Then each player would read this data, and if it found a GamerSelection value, it would read the next packet and assume it was the other player's selection. This did get a bit fiddly, and I'm quite sure I haven't got it quite right yet, but my networking code, not including the sample im using is about 20 lines of code on top of my existing single player game. Brilliant. So i swap out the AI, for another pad controlled player and gave it a try. Getting Seloc to pull away from his drawing to test it with me was hard work, once he's in the zone, he's in the zone.
     But i persevered and eventually after a few iterations of bug fixing and debugging we had a working game. It was brilliant; stupid, but brilliant. So the only thing left to do was put some more trapping in and get it looking nice. That didn't take too long, by this time Seloc almost had all the art ready, so we imported this and began loosely positioning it on screen. It looked fun; it looked like a game believe it or not. There was merely 2 more things to try. 

    1. Try it on the Xbox:- right click project, create Xbox copy, wait 15 seconds, hit build. Done!!
    2. Try it on Xbox live:- in theory there shouldn't be any code differences right? The sample should have taken care of it for me. Shawn if this was you. Thanks man. Zero code changes.

    So I built a ccgame and popped a message in the #xna IRC channel, asking if anyone was willing to play this with me over Xbox live, I didn't have to wait long before Borealis offered his time. Within a few minutes we were in a lobby, and in the game, we were playing Rock Paper Scissors over Xbox live, and it was fun.


    There was only one thing for it now, we had to publish it to Creators Club Community Games, so at 2:30 am this morning i hit publish, i've not seen the results yet but

    I'm praying it didn't fail. I can't see the site at work :(
     
    But just to recap, in about 3-4 hours we went from blank project, to using a sample, to having a game, to having it on creators site to download<subject to it passing>
    This, i hope you agree, is an astonishing thought. While my game is only Paper Scissors Stone, it's the simple ones that are the best,
    So a few more hours of your time and you could make something a bit more substantial than RPS, but small enough to be a 1 night project.
     
    Heres a teaser screenshot, check it out on Creators Club and if you really want to play and you're not in the USA, just drop me an email or a comment. 
     

    Rock Paper Scissors

  • Progress made with CreamX Studio

    Im quite pleased with the progress of CreamX Studio with the recent changes i posted about. Its back up and running and the majority of it actually still working.  I was feeling so motivated i thought i would start work on a tile editor. Shown below with a couple of other screens.

     CreamX Studio

    I have also tidied up the namespaces of CreamX so the starter kits are not quite building just yet. Hopefully not much more to do till its safe to check-in.

  • CreamX on the iTouch? ITS COMMING!!!!

    I had quite a crazy moment about a week ago. I convinced myself that it would be "cool" if my CreamX game engine for XNA would work on other platforms other than Windows and the Xbox 360. This would include linux distributions and Mac OS and possibly even the iPod Touch / iPhone. 3-4 long days later i manage it, I can now build multiple versions of CreamX to run on Windows with XNA or Open GL, for the Xbox 360 using XNA, and for linux using OpenGL. A Windows/XNA and a Linux/OGL screenshot are below.

     CreamX

     Apologies for the quality of screenshot but there is the engine loading a simple scene file and executing on Windows, and on a linux distro running against mono and OpenGL with zero code differences in the actual game code. The only thing different is the version of the CreamX assembly it gets deployed with. You can see the VMWare which is running the latest version of the openSuse distro from mono. nothing extra needed to be installed.

    Iv only got basic rendering implemented at the moment, but CreamX fully loads the scene data and runs the update loop as normal. Im rushing to implement something quickly on the OpenGL side but the xna side should run as normal fairly soon. Unfortunatly iv broken the editor. But it shouldnt be too much to fix up, and the editor will still require XNA, im going to contiue to prioritise XNA and its the easiest way to keep the editor up to speed, but its not out of the question to think the editor could be ported too.

    I used OpenTK as the substitue for XNA on the linux side which runs against mono.  Eventually CreamX Studio will allow you to click a build button similar to Visual Studio and it will seamlessly create 3 distributions for your games.

     

    I will be checking this latest build into codeplex soon so you can see how i did it. :)

     

     

  • CreamX develops a personality

    I started a project on codeplex as one of the very first things i did with XNA. I wasnt new to programming or c#, far from it so the size of the potential project didnt phase me, if anything it inspired me. The product that inspired me the most though, as much as it hurts inside to say was TorqueX from GarageGame. This product is essentially what kept me going with xna because game development was very new to me. I had dabbled in the past but with very little success, zero success infact, but because TorqueX was so easy to use it enabled me to get from a game idea to a running sample in minutes, It seriously amazed me. Now, TorqueX was very young at the time and did have some issues, mainly with the designer which was the part that kept me going. So i had to delve deeper into TorqueX to get some of the things out of it the editor wasnt letting me do. Then I hit a few more problems but i wasnt upset, it was still a very young product and even XNA was still young. Lets say our love affair didnt last long so i walked away with a game idea and no way of turning it into reality. I knew the real work was being done by the engine dll itself, not the editor so i began my venture down the game development track by developing my very own engine. CreamX was born. So lets just get one thing straight, despite the fact my and TorqueX ended in a blaze of glory CreamX would not exist, without that history.

     CreamX is heavily inspired by the product mentioned above so if you know it or of it you should understand what CreamX is about. You can see my project on codeplex here.

    So what can CreamX actually do? Firstly, its the very engine i am using for SBARG, CreamX can turn very few lines of code into visual reality in very little time. Up until very recently i had nothing in the form of an editor, i was using Visual Studio to maintain my CreamX configuration files. So i decided to make a start but then something happened. Somebody showed some interest, it wasnt much, but enough to motivate me, you can meet the crazy dude ElemntCy on #xna IRC channel. So i started to thrash out a simple scene editor, and added menus for easy adding of components, and then wrote a sample game and things just came together so quickly. Then all of a sudden, i had an editor for my SBARG which hopefully means the artist for SBARG (Seloc) can finally convert his genius artistic thoughts into our game. I began to really get into the idea of turning CreamX into a viable product i could use on more game ideas i have, one of which you can have for free in the shooter game sample :) and more importantly i realised other people might be able to actually use at some point in the near future.

    And now we are here. I just wanted to take a little break and write something about it as im getting really excited about my game development future now.

    I guess i best get back to working on my game and my engine, busy busy. I will definatly write something up on how to use CreamX in the planned Alpha release, but please feel free to take a look now, even offer help, any ideas you may have for the engine will be greatly apreciated.

  • SBARG Update

    As many of you know i was hoping to have a public demo available to play sometime soon, like as in now. Unfortunatly due to a few reasons this didnt go to plan.

    One of our big issues at the moment is performance, the game is heavily cpu orientated and therefore proving dificult to keep up to speed when running on the XBOX 360. In many ways this was a good thing as it made me clean up a lot of bad practices such as creating lists and sorting them every frame. Naughty Conker.

    So I have managed to get garbage collection down to a reasonably acceptable level which made the game much smoother but not as smooth as I would like. One of the other main reasons for not getting it out is we are still undecided about many aspects of the gameplay, and following a few hours of playtesting with some actual real people.. i know i know it sounds crazy but they had a beating heart and EVERYTHING... wow.. anyway, the playtesting went "ok" but not much in the form of positive gameplay feedback. The biggest contributor to this was the control scheme i think oh and some retarded gameplay feature i thought might be cool, which turned out to SUCK!!!!.We are now working franticly on gameplay, performance is good enough for now, slow but enough not to cause development issues. I would love to get a much bigger audience of play testers  to get a broader opinion on the game which should enable us to create a better game, the moment we are happy enough that we wont be embarrassed at the feeback then we will publish this as a public playable alpha.

    To try and keep some of the interest up here is a little snippet of a screenshot containing some of the newer visual styles we are experimenting with. This is just an experiment of colour changes and slight style changes, any opinions/feedback are welcome.

     

     

  • SBARG! - Calling all games

    Seloc and myself have been working on an RTS called SBARG!. It uses the CreamX engine mentioned in previous posts and its starting to come together really well. We have decided to enter 3 screenshots into the Calling all games request. The 3 screenshots are below, click to see large size, please let us know what you think of how it looks.

      We have also started work on a website which is currently being shown in a test area here on Ziggyware

     

     

     

  • Transport Tycoon XNA 3D

    Thanks to ajmiles for his work so far i have started a new project on codeplex for Transport Tycoon 3D developed using C# and XNA

    In the source code download there are 2 projects. The first is TTDotNet, this is C# written using the MDX api and has terrain manipulation road placement, station placement, truck route planning and driving around.. really cool stuff..

    The second is TTXNA, this is as far as ajmiles got with his port from MDX to XNA. this has terrain manipulation so far.

    If anyone is interested in helping out just let me know and ill add you to codeplex project.

    the project is here http://www.codeplex.com/ttxna

  • CreamX with Farseer

    I have started to implement Farseer physics into CreamX. If you know of Farseer the screenshot should look familiar.

    This is a replica of the starter demo in the Farseer kit built using just an XML file and 1 line of code to load the content, display it on screen and configure farseer.

    I then added the same keyboard commands as the demo to apply force and i have a full replica using the CreamX engine.

    Next step is to start implementing the xml support for more Farseer features. this really should take long at all though, all the hard work has been done thanks to Jeff Webber

  • CreamX XNA 2D Engine

    The reason i wanted somewhere to blog was for my new XNA project which is called CreamX. Quick run down for the first post. i'll try not to bore myself and anyone reading.

    What is CreamX?

    CreamX is a 2D Engine with a designer aimed to help you quickly get started and rapidly add and modify functionality to your 2D game.

    This isnt strictly true at the moment, while i have the basics in place it is a way off being ready for anything commercial.

    What does CreamX contain?

    CreamX currently contains the CreamXEngine library, a CreamX designer project,a Pong demo and a Space Game demo. Oh and a starter kit :)

    When will something be working?

    Something works now, pong is very feasable using the engine, its not exacly how i would like the api to be but this will grow over time. I hope to have some sort of designer working and more physics & collision implemented within weeks. At this point i will do the first alpha release as an installable item.

    What should i do now?

    You should go and download the current version of the source code and take a look. Its changing daily and sometimes hourly.

    Once you have the code take a look, make sugestions, make changes, become an assigned developer on the project. Any feedback and help will ensure this project keeps alive

    Where?

    http://www.codeplex.com/creamx

     

  • XNA Community Buzz

    As my first post i would just like to say thank you someone, i only know him/her as leaf but that's good enough for me.

    Thank you leaf for giving me this blog functionality, saved me loads of time so i can concentrate on XNA and not blogging software.

    We need more of this helpful attitude to continue the success of the XNA community.

     

    More to come soon about my new CreamX engine which you can find on codeplex here