This entry at Promit Roy's blog finally confirmes that any last hope of XNA should be left. This is, probably, better than nothing, however it was almost obvious with release of Windows 8 SDK with DirectX merged into it. Yet they gained some little respect at least from that point. This is, probably, the only point from which respect can be given.
First they they should say that earlier. Second, they should not drop XNA at all. Despite some negative aspects XNA was extremly intuitive and easy to work with. It was a huge success, enormous attention from developers of wide range of expecience, from novice to professionals. Terraria was written in XNA, a 1.5+ million sells title. They don't need even to add support for WinRT. Just a mere bugfixing, support and Visual Studio 2012 integration.
Enough rant. The question is, should you continue to use XNA? It, of course, depends. If you amateur or just started to learn game programming, it doesn't really matter, you can safely continue to write your first games. However, you can try to port your game to MonoGame to be ready for Windows 8. Last option is also to consider for writing your first more or less serious game, which, most probably you want it to evolve and live in future. Professionals can decide for thenselves I guess, but I guess XNA is no longer a valid option for pro game development.
Showing posts with label XNA. Show all posts
Showing posts with label XNA. Show all posts
Jan 31, 2013
Aug 25, 2012
Fixing XBLIG (and Windows Phone) forum links
As usual, working with an elephant finesse, Microsoft, for some obvious reasons decided to split Windows Phone and XBLIG forums. This results in incredible amount of links on the web are being broken. Oh, this is so nice.. The good part however is that, you can replace old forums.create.msdn.com/forums with xboxforums.create.msdn.com/forums in address and make it to the desired topic.
As for unfortunate ones who were looking for some topics for Windows Phone, the things here are much simplier: all topics are lost somethere, or just gone, I don't actually know.
Back to XBLIG. If you are using Firefox, you can use Redirector add-on, as described here. Just in case, I'll duplicate the rules here. Goto add-on options and add two rules:
Rule 1
Example URL: http://forums.create.msdn.com/forums/p/0001/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2/$3
Pattern Type: Wildcard
Rule 2
Example URL: http://forums.create.msdn.com/forums/t/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2
Pattern Type: Wildcard
As for unfortunate ones who were looking for some topics for Windows Phone, the things here are much simplier: all topics are lost somethere, or just gone, I don't actually know.
Back to XBLIG. If you are using Firefox, you can use Redirector add-on, as described here. Just in case, I'll duplicate the rules here. Goto add-on options and add two rules:
Rule 1
Example URL: http://forums.create.msdn.com/forums/p/0001/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2/$3
Pattern Type: Wildcard
Rule 2
Example URL: http://forums.create.msdn.com/forums/t/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2
Pattern Type: Wildcard
May 1, 2012
Complete XNA games sources for beginners
If you are beginner in game development it's invaluable to study someone else's game code. There are countless reasons to do that, both technical and let's name it "psychological" aspect. From technical point you learn: how code is organized, architecture, some useful tricks, how much code is required for some features. From "psychological" point you learn one, but very important thing: nobody's code is perfect, after that you will stop think about "real" games as some perfect creations, some of them are sooooo far from it, yet they still successful. If you are lucky enough you will find some developer notes on development process, or project organisation.
Sources value however, at least for me, differs greatly. Firts of all, big games sources are almost useless for you. You won't be able to understand them in some reasonable amount of time (if you will be able to compile them, ahem). Small games, on the other hand are useless too, they just don't big enough to introduce some basic architecture required to fight complexity. Preferrable size is somethere much below medium size. It actually depends on your current knowledge (I mean if you learn XNA for half a year you still a beginner usually, but you know much more then someone who learn it for a two weeks).
That said, the highest value (and least available) have complete commercially successful games. If you want to make your game at least interesting, and at best be able to sell it, this games provides such examples. However if game is free or open source, but still popular it's probably isn't much worse. The least valuable (and most available), but still useful are open source game project which tend to be "in-development" state permanently. This are only interested on final stages, then game is at least 50% complete.
In this post I will store (and update) a collection of links to some such sources. It's only XNA projects, sorry:
1. Sources to Molly the Were-Zompire RPG game can be found here. Zeboyd games is actually a cool retro-style game company check them out. This one is actually interesting one. First of all it's a XBOX targeted game. Second it's just that case then you absolutely should learn how you should not design your game. And third it's a text only (almost) adventure game! Again, this game is a commercial game, and it is successful. This is a lesson every gamedev should learn.
2. Space Defender. This is a much smaller game, this one, however, in contrast to previous, very well designed (for it's size). Everything is neatly organized. But again, in contrast, to previous this one will not interest any gamer.
3. Asteroid Outpost. A live repository at bitbucket. Good project organization, a lot to learn from.
4. A collection of projects at CodeProject. Most of them are not the games (however there are some complete games there), but also still useful to learn some specific area.
5. Pixel Man 2 by Nick Gravelyn. Cool, almost complete game with excellent sources (Nick worked in Microsoft in XNA team).
P.S. I would gladly accept and include any other valuable XNA game sources, just mention one in comments. Thanks!
Sources value however, at least for me, differs greatly. Firts of all, big games sources are almost useless for you. You won't be able to understand them in some reasonable amount of time (if you will be able to compile them, ahem). Small games, on the other hand are useless too, they just don't big enough to introduce some basic architecture required to fight complexity. Preferrable size is somethere much below medium size. It actually depends on your current knowledge (I mean if you learn XNA for half a year you still a beginner usually, but you know much more then someone who learn it for a two weeks).
That said, the highest value (and least available) have complete commercially successful games. If you want to make your game at least interesting, and at best be able to sell it, this games provides such examples. However if game is free or open source, but still popular it's probably isn't much worse. The least valuable (and most available), but still useful are open source game project which tend to be "in-development" state permanently. This are only interested on final stages, then game is at least 50% complete.
In this post I will store (and update) a collection of links to some such sources. It's only XNA projects, sorry:
1. Sources to Molly the Were-Zompire RPG game can be found here. Zeboyd games is actually a cool retro-style game company check them out. This one is actually interesting one. First of all it's a XBOX targeted game. Second it's just that case then you absolutely should learn how you should not design your game. And third it's a text only (almost) adventure game! Again, this game is a commercial game, and it is successful. This is a lesson every gamedev should learn.
2. Space Defender. This is a much smaller game, this one, however, in contrast to previous, very well designed (for it's size). Everything is neatly organized. But again, in contrast, to previous this one will not interest any gamer.
3. Asteroid Outpost. A live repository at bitbucket. Good project organization, a lot to learn from.
4. A collection of projects at CodeProject. Most of them are not the games (however there are some complete games there), but also still useful to learn some specific area.
5. Pixel Man 2 by Nick Gravelyn. Cool, almost complete game with excellent sources (Nick worked in Microsoft in XNA team).
P.S. I would gladly accept and include any other valuable XNA game sources, just mention one in comments. Thanks!
Apr 21, 2012
XNA articles beginner should not miss
This article data (and much more) can now be found here. I find that blogger platform was not suited well for managing of this kind of list.
You may also find useful:
- XNA tutorinals beginner shouldn't miss
- XNA tools 2D game developer should not miss
You may also find useful:
- XNA tutorinals beginner shouldn't miss
- XNA tools 2D game developer should not miss
Apr 15, 2012
Digger.NET in development, part 5
Well, I extremely satysfied right now, since I've done complete main screen of my XNA port of a Digger Remastered. The currently main page looks like:
I'm impressed how easy it's for a complete gamedev noob (like me) to do things in XNA. So, original internal framerate for Digger is something like 15 frames per second. Question: how much it takes to set it in XNA game? Answer: one line, just add this to your main Game class:
This is especially evident if you look at the original C code, it's so complex. The graphics and drawing code is incredibly complex. I'm not going to blame the author, seems like he did much more complex job than I but this:
// original frame rate is 15 fps (67 ms per frame) this.TargetElapsedTime = new TimeSpan(0, 0, 0, 0, 67);So-o-o nice! So nice I will count the XNA one of the best frameworks which comed from Microsoft (I'm hoping Microsoft will not slow down or stall the thing with it's new Metro-Shmetro and all the native stuff which it puhing quite intensively lately, IMHO).
This is especially evident if you look at the original C code, it's so complex. The graphics and drawing code is incredibly complex. I'm not going to blame the author, seems like he did much more complex job than I but this:
bool sprrdrwf[SPRITES+1]; bool sprrecf[SPRITES+1]; bool sprenf[SPRITES]; Sint4 sprch[SPRITES+1]; Uint3 *sprmov[SPRITES]; Sint4 sprx[SPRITES+1]; Sint4 spry[SPRITES+1]; Sint4 sprwid[SPRITES+1]; Sint4 sprhei[SPRITES+1]; Sint4 sprbwid[SPRITES]; Sint4 sprbhei[SPRITES]; Sint4 sprnch[SPRITES]; Sint4 sprnwid[SPRITES]; Sint4 sprnhei[SPRITES]; Sint4 sprnbwid[SPRITES]; Sint4 sprnbhei[SPRITES];is just nonsence. At least you can pack each x, y, wid, hei etc. coordinate like data in a structure with two fields. And this is just a tip of an iceberg. Consider this young fella from sprite.c:
void drawspr(Sint4 n,Sint4 x,Sint4 y)
{
Sint4 t1,t2,t3,t4;
x&=-4;
clearrdrwf();
setrdrwflgs(n);
t1=sprx[n];
t2=spry[n];
t3=sprwid[n];
t4=sprhei[n];
sprx[n]=x;
spry[n]=y;
sprwid[n]=sprnwid[n];
sprhei[n]=sprnhei[n];
clearrecf();
setrdrwflgs(n);
sprhei[n]=t4;
sprwid[n]=t3;
spry[n]=t2;
sprx[n]=t1;
sprrdrwf[n]=TRUE;
putis();
sprenf[n]=TRUE;
sprx[n]=x;
spry[n]=y;
sprch[n]=sprnch[n];
sprwid[n]=sprnwid[n];
sprhei[n]=sprnhei[n];
sprbwid[n]=sprnbwid[n];
sprbhei[n]=sprnbhei[n];
ggeti(sprx[n],spry[n],sprmov[n],sprwid[n],sprhei[n]);
putims();
bcollides(n);
}no comment (pun here!). How many global variables you can count here? Maybe you want to know that ggeti is? Actually it's a function pointer, to another function (which is actually quite an elegant solution to switch CGA and VGA graphics mode): void vgageti(Sint4 x,Sint4 y,Uint3 *p,Sint4 w,Sint4 h)
{
Uint5 i;
for (i=0;i<h*2;i++)
if (i+y*2 < 400)
farmemcpy( (char far*) (p + (Uint5) i*w*8l), back_bitmap_bits+ (Uint5) ((y*2l+i)*640l + x*2l) , w*8);
}how many magic numbers you can count here? Developer suggests contacting him in case of any questions. But last modification date for source is year 2004. I feel it's little rude to notify person on his completely forgotten project. This is so sad he didn't leave enough comments then he could.
Apr 12, 2012
XNA tools 2D game developer should not miss
This article data (and much more) can now be found here. I find that blogger platform was not suited well for managing of this kind of list.
You may also find useful:
- XNA tutorinals beginner shouldn't miss
- XNA articles beginner should not miss
You may also find useful:
- XNA tutorinals beginner shouldn't miss
- XNA articles beginner should not miss
Apr 5, 2012
A set of XNA tutorinals beginner shouldn't miss
This article data (and much more) can now be found here. I find that blogger platform was not suited well for managing of this kind of list.
You may also find useful:
- XNA tools 2D game developer should not miss
- XNA articles beginner should not miss
You may also find useful:
- XNA tools 2D game developer should not miss
- XNA articles beginner should not miss
Apr 2, 2012
Conjurer: Reloaded
The Conjurer project which was my little playground for something related to game development, but which ultimately become a failure, will now hold something quite more useful. It will be my personal XNA Framework utilities library. For now it contains a KeyboardManager class which helps to manage keyboard input handling.
As you can expect, main user of this project will be (and is) Digger.NET project.
As you can expect, main user of this project will be (and is) Digger.NET project.
Mar 30, 2012
Digger.NET in development, part 3
Well, project progress is good (considering how little free time I spend on it). I must admit that XNA is very convenient framework to work with, so some glory goes there. By now I've converted all graphics, and project Digger.Convert can be treated as accomplished.
Now I've switched to actual DiggerGame project. As I previously mentioned first part would be implementing ultra-simple text editor using game's bitmap font. As of now, I partially succeeded in that, it was somethat simplier then I thought. Oddly enough such simple procedure as reading text input in XNA can become very complicated. Nonetheless, here it comes, first screen of a my very first, big expectations XNA app:
The screen size is original 320x200 resolution. I've decided to work initially with it, and add scaling later (yet not decided how to do it right). It types all pressed keys in one row. That's all. It doesn't correctly process keys other then letters. But I'm excited like I've written some good game. That's what I like about programmig. Game programming excites even more, because you basically see the result of your work.
Now I've switched to actual DiggerGame project. As I previously mentioned first part would be implementing ultra-simple text editor using game's bitmap font. As of now, I partially succeeded in that, it was somethat simplier then I thought. Oddly enough such simple procedure as reading text input in XNA can become very complicated. Nonetheless, here it comes, first screen of a my very first, big expectations XNA app:
The screen size is original 320x200 resolution. I've decided to work initially with it, and add scaling later (yet not decided how to do it right). It types all pressed keys in one row. That's all. It doesn't correctly process keys other then letters. But I'm excited like I've written some good game. That's what I like about programmig. Game programming excites even more, because you basically see the result of your work.
Mar 21, 2012
Digger.NET in development, part 2
As mentioned in previous post I've started by convertion graphics data to real graphics file format. The easiest part was symbols data, i.e. game font. The result is as follows:

This is a 192x192 image (16x16 symbol grid), there symbol is located based on it's ASCII code value.
The symbol data was a simple single bit per pixel, there each pixel was half of the byte. For examle symbol A was represented as follows:
A
0x00 0xff 0xff 0xff 0x00 0x00
0x0f 0xff 0xff 0xff 0xf0 0x00
0x0f 0xf0 0x00 0x0f 0xf0 0x00
0x0f 0xf0 0x00 0x0f 0xf0 0x00
0x0f 0xf0 0x00 0x0f 0xf0 0x00
0x0f 0xff 0xff 0xff 0xf0 0x00
0xff 0xff 0xff 0xff 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
Initial A is a header the rest is the symbol data. Full symbol data file can be viewed here.

This is a 192x192 image (16x16 symbol grid), there symbol is located based on it's ASCII code value.
The symbol data was a simple single bit per pixel, there each pixel was half of the byte. For examle symbol A was represented as follows:
A
0x00 0xff 0xff 0xff 0x00 0x00
0x0f 0xff 0xff 0xff 0xf0 0x00
0x0f 0xf0 0x00 0x0f 0xf0 0x00
0x0f 0xf0 0x00 0x0f 0xf0 0x00
0x0f 0xf0 0x00 0x0f 0xf0 0x00
0x0f 0xff 0xff 0xff 0xf0 0x00
0xff 0xff 0xff 0xff 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
0xff 0xf0 0x00 0x00 0xff 0x00
Initial A is a header the rest is the symbol data. Full symbol data file can be viewed here.
Mar 11, 2012
Digger.NET in development, part 1
As you probably may not know, I'm very interested in game development, but, unfortunatelly, after some attemps some years ago, still have not done anything interesting. Some time ago I've learned about XNA, and again was ready for another attempt in learning this part of software development world.
As a big first task I've decided to port a Windows version of Digger Remastered project to .NET. The original source is a DirectX Windows C application. The project I've started have two main goals: 1) maintain and improve original C source; 2) create XNA port of the game.
For a relatively long period of time I slowly cleaning up, commenting, and refactoring original source code. First big improvement was that I moved hardcoded graphics description data to a separate files. After that I was generally really bored with a project, since with such little comments in the original code it was really slow and frustrating task to decipher it. So, with a help of Learning XNA book I've decided to move on.
The first part is to convert original graphics data to real graphics format. For that porpose I've created Digger.Convert project. It's sole purpose would be a set of graphics files, which will be a sprites for a game.
Game uses custom graphical font to display text. I think it's a good idea, as a first step, make an XNA app which will print text with this custom font from a keyboard in realtime (kind of text editor). This will be my first milestone in XNA project.
As a big first task I've decided to port a Windows version of Digger Remastered project to .NET. The original source is a DirectX Windows C application. The project I've started have two main goals: 1) maintain and improve original C source; 2) create XNA port of the game.
For a relatively long period of time I slowly cleaning up, commenting, and refactoring original source code. First big improvement was that I moved hardcoded graphics description data to a separate files. After that I was generally really bored with a project, since with such little comments in the original code it was really slow and frustrating task to decipher it. So, with a help of Learning XNA book I've decided to move on.
The first part is to convert original graphics data to real graphics format. For that porpose I've created Digger.Convert project. It's sole purpose would be a set of graphics files, which will be a sprites for a game.
Game uses custom graphical font to display text. I think it's a good idea, as a first step, make an XNA app which will print text with this custom font from a keyboard in realtime (kind of text editor). This will be my first milestone in XNA project.
Subscribe to:
Posts (Atom)
