A bit of nostalgia

I recently stepped on a folder on my desktop, containing several old pieces of code, and most of them actually still worked well. So after several screenshots and a bit of nostalgia, here there are.


Video mapped landscape (with lighting)
Video mapped landscape (with lighting)
This small project was a test to ensure I could delegate per-pixel process to a pixel shader. I had to map the video on a model, use an orthographic projection, and make sure the shader will properly be applied to pixels in the video.
However, once I was done with the video mapping procedure, I couldn’t resist to map the video on a funnier model than the quad I was using. So here is my perturbated landscape, with a live video stream coming from a locally connected webcam.

Cartoon rendered model
Cartoon rendered model
When working on the Teapotware, we tried to separate the rendering from the world/scene design. We ended with a plugin based system that allowed the same scene to be rendered with Direct3D, OpenGL, or even sub-flavored renderers. The picture shows a simple scene (with only one object and one light) rendered with the our Direct3D – Toon rendering plugin.

Realtime Raytracer
Realtime Raytracer
At the engineering school, I worked on a raytracing renderer. It worked well, but it was full-software (not HW accelerated), and as a result, pretty slow. A couple of years later, I came up with a new idea: things could be partly accelerated with OpenGL: instead of calculating all the rays at once, the idea was to trace only a subset, and let opengl interpolate the colors between the rays. Then, once the scene/camera is still, the intermediate rays are traced, improving the quality of the overall render.

As you can see, there is no antialiasing, and the scene is not particularly impressive (a mirror on the back, a partially reflexive sphere, and a mat box). However, this is realtime.

Nowadays, it could be even easier with GPGPU, but I coded this years ago, when the only thing I could use was PS 2.0.

The maze project, first person
The maze project, first person

The maze project, top view
The maze project, top view
I worked on this project while I was in Japan, as a freelancer. The idea was to provide a tutorial-like app, with a set of constraints: a maze was described in a file, and a maze crawler (the white shpere) had to follow a path to collect objects in the maze at a given speed.

I also opened the source of a couple of those projects, and thanks to the teapotware, it was impressively clear and lightweight. For instance, the whole videomapped landscape project contains less than 180 lines of code.

I’ve recently (about 2 month ago) decided to remove the dust of the teapotware. There are things that can clearly be improved (the memory manager for instance), and even the design of some classes/interfaces can be discussed. On the other hand, the purpose of the library remains the same: to provide a robust crossplatform library applied to multimedia. I’m afraid I can’t give any release date yet (my weekends are pretty short these days), but it shouldn’t take that long.

First game on Windows Phone 7: Kinito!

Here is a screenshot of my first game on windows phone 7. It is currently being tested, but it should be available on the marketplace soon (I hope).

The kinito is a very funny drinking game, playable with dices. On the other hand, it’s usually easy to find friends to play with and alcohol to drink, but dices are less common than smartphones, hence this app.

I’m now thinking to port it to Android.

Gametools suite

I was asked several times to update GXView to support XNA 3.1. And these days, I’ve a little more time, so I decided to check/update the tools I made and to release a package of those.

Gametools 1.0 should come in a couple of weeks now, and will contain:

  • – GXView (.xnb viewer/converter)
  • – HMEdit (improved since last release)
  • – Spritemapper: a tool to create spritemap from images sequence
  • – ScreenBuddy: An handy tool to capture screen (images/video), and other functions related to the screen.

More about it soon.

Back from holidays

1 week of honeymoon under the sun… Fuerteventura (Canary Islands) is definitely a nice place to be:-)

Here below are few news:

muryel-regard.com is now live! There will probably be improvements in a near futur, but you should take a look to this talented photographer who also happens to be my cousin. The development of this website was also the occasion for me to remove the dust from LCS, the generic lighweight backoffice I developed about a year ago. It is getting quite better now, so I’ll try to post more about it soon. Just for you to know, the idea of this tool is to let you create your website model, and then to insert LCS calls to get dynamic content.

XCross is getting popular, and the sales are not bad despite the fact it is already gone from the “latest entries” section. The trailer is now on both Youtube and Dailymotion, and was already included in several other pages. Picross-Star, our partner is also advertising for us, and several other websites already reviewed it (emuboards.com, gaygamers.net…) Only good comments so far. If you are reviewer and plan to review XCross, don’t hesitate to ask me for marketplace tokens. You’re also welcome if you already did this review.

More infos soon.

Publishing a Game on XBOX 360

Today, my first XBox Game has been published on the Live marketplace! It was definitely a great experience, and I am very grateful to all the playtesters and reviewers from the creators club. However, my submission took a lot of time, and that could have been avoided if I were a little more cautious. So in this post, I’ll try to give you some tips to make the publishing process smoother.

If you don’t know what I’m talking about, you should take a look to this introduction to game dev for XBox360 using XNA.

Ok, you made an XNA game, and you’d like to sell it on the marketplace. First, you’ll need a premium subscription to creators.xna.com. It will allow you to present your game for playtest and for review. Then, if you want everything to go smooth:

Follow strictly the microsoft guidelines.

The reviewers will also base their judgement on those guidelines. While some points can be discussed, most of them will be a fail reason if you don’t follow them. Here is a list of the common things to think carefully before you can submit your game:

  • – Pause your game if the player disconnect his pad, or if he displays any kind of guide.
  • – Write carefully your load/save code. Save asynchronously, and think about the players having an hard disk and a MU.
  • – Do NOT suppose your player will use only the first controller.
  • – Use fonts/sprites big enough to look OK even on SD screens
  • – Running your game on XBox IS different than running it on your computer. Expect a bit of optimization, and think about the off-screen areas on TVs
  • – Avoid crashes at any cost (easy :-))

Have a decent playtest session

After you submit your game for playtest, you should get many feedbacks from other developpers. It’s always a pain to work again on something you considered as finished, but if you listen to their advices, you’ll save yourself a lot of time for the review. And just think about the price a testing team would cost you if you had to pay them!

Think carefully about “presentation”

Before you submit for review, you should work a little bit on the images, screenshots and descriptions that will represent your game. The screenshot are important to make people actually willing to review, and ultimately play your game. Same for the jacket and icon.

The description, however, is a bit tricky : I recommend you to set a description only in the language you localized your game. For instance, if you submit a game in english only, don’t write a french description. (this is what I did for ArkX, and understood only recently it was a mistake). Your game will have to be reviewed by people who speaks the languages you set. So if you set a french, spanish and italian description, you’ll need to be reviewed by ppl speaking spanish/english, italian/english, and french/english. The amount of this kind of reviewer being much lower than english reviewers, you may get stuck because of a lack of review in a particular language. So just set a description in a language you translated your game in before submitting your game for review.

Don’t take review personnally

This point isn’t a particularity of XNA games. Developpers have quite often a deep relationship with their own code, and take the critics very personnally. If someone fails your game, it means there WAS a fail reason. It can be discussed, and your game won’t be rejected only for a fail. On the other hand, if someone else fails your game, (2 fails will result in a reject), it merely means you should fix things, and submit again. Of course, easier said than done, but ArkX was rejected 4 times before approval, and at some point, I was even wondering if it was worth to keep working. But then, after reading posts on forums, I could see the reviewers were only doing what was asked to them. And it saves a lot of time when someone tells you where the problem is. (this point is from my own experience of the reviewing process, so it may not fit to anyone)

Do your bit of community

The playtester and reviewers are developpers like yourself. It will strongly help your submission if you review some game as well. I didn’t understand this at first, but I could get more review after I started to be a bit more active on reviewing and on the community forums. And some games are really fun to review, so don’t hesitate!

In any case, good luck for your submission, and trust me, it’s worth your efforts! (euphory from the approval mail didn’t leave me yet)