14th
May

GetRandomGame: The Black Triangle
We’re changing from SDL to SFML

We’ve decided that it would help to have better tools in order to make a game and instead of reinventing the wheel, we changed the framework from SDL to SFML. This means that a lot of code goes to waste and get replaced by better code from the SFML framework. There were so many files and problem with the directory architecture that I decided to start from scratch and just keep the useful parts from the old code. I managed to get the “Main Menu” state up and running with the same code architecture as before, but using SFML instead and the interesting part of the picture above is the window title showing the number of frames per second, it is now like 10 times faster!

About the Black Triangle

The Black Triangle refer to an article on the Rampant Games blog dating from 2004. In short, most of the time, people aren’t that impress by your work and they don’t see all the work put behind what you’re showing to them. That’s the case for most of IT projects.

GetRandomGame: The Black Triangle

We’re changing from SDL to SFML

We’ve decided that it would help to have better tools in order to make a game and instead of reinventing the wheel, we changed the framework from SDL to SFML. This means that a lot of code goes to waste and get replaced by better code from the SFML framework. There were so many files and problem with the directory architecture that I decided to start from scratch and just keep the useful parts from the old code. I managed to get the “Main Menu” state up and running with the same code architecture as before, but using SFML instead and the interesting part of the picture above is the window title showing the number of frames per second, it is now like 10 times faster!

About the Black Triangle

The Black Triangle refer to an article on the Rampant Games blog dating from 2004. In short, most of the time, people aren’t that impress by your work and they don’t see all the work put behind what you’re showing to them. That’s the case for most of IT projects.


11th
May

Zeptoide: a sextillionth of an IDE

Compiling and executing Mini C++

This is the latest project for the software engineering course. A working IDE that provides projects file and editing/compiling/executing Mini C++ code with our own libraries. It doesn’t provides machine code but it can be interpreted. It provides the basic features of a standard IDE:

  • A toolbar and standard menus;
  • A solution explorer (which loads mcpp files inside the project dir);
  • Tabs for the home screen and the source file;
  • A custom console;
  • And a real-time variable debugging data grid.

How it works?

There are two main component that provides the compiling and execution. One that takes the next token on a line (see the image of the test program result) like a semi-colon, a parenthesis or an operator then the second component decides what to do with it considering the current context. Both components build a dll. See in detail how you can get C# to use C++ dll.

There’s a third component which is only the WPF application using the previous two component. Each component is thoroughly tested with its own test program that output a text file with the result and errors if something went wrong.

Why that name? Zeptoide?

It literally mean a sextillionth of an IDE (Zepto IDE).

I started the project with Minide (which stands for Mini IDE) in mind but I found out that it was already taken. I then thought of MicroIDE—taken—then NanoIDE—taken—and PicoIDE, FemtoIDE, AttoIDE wasn’t right to the ear, so the next choice was ZeptoIDE (zepto is a prefix in the metric system denoting a factor of 10-21).

That’s it for Zeptoide.


22nd
Apr

NetSnake: the java socket project

It can takes up to 10 clients without any lag or delay

See the first post.

The project is already over; finals are near. It plays really nice, it now provides the choice of the host and a chat box. The game is playable and by that I mean you now die whenever you hit something else than a yellow square (which is now outlined green) that represent the goal or an apple. I’ll probably upload the game on a server in the next weeks or so.


17th
Apr

NetSnake 0.1
A classic Snake game with Java sockets

I’m working on a Snake game in Java, adding a multiplayer feature to it with java sockets. It is already working well, but the gameplay is at its minimum. You don’t die, there’s a lot of “apples” (which are yellow for no good reason) and you can take a break while facing a wall. Hitting another player’s snake does nothing except erasing a tile behind.


It’s in fact two applications, a server application and a client graphic interface. All the client do is sends its inputs and draws the board which all the information is received from the server. It runs smoothly at least 4 or 5 clients on the same server and computer. With my gaming laptop, it started to lag with more than 10 clients on a server on the same computer.

And I’m the proud owner of a new laptop

I got a deal on a two years old Asus G73JW which is way better than my five years old HP HDX 16 except the fact that it has really noisy fans. The point is that I got to reinstall everything and got to try a new color scheme plugin in Eclipse (monokai) and I must say it’s really enjoyable! My eyes were tired of the two bright screens, it’s now way better for prolonged use over night.

NetSnake 0.1

A classic Snake game with Java sockets

I’m working on a Snake game in Java, adding a multiplayer feature to it with java sockets. It is already working well, but the gameplay is at its minimum. You don’t die, there’s a lot of “apples” (which are yellow for no good reason) and you can take a break while facing a wall. Hitting another player’s snake does nothing except erasing a tile behind.

It’s in fact two applications, a server application and a client graphic interface. All the client do is sends its inputs and draws the board which all the information is received from the server. It runs smoothly at least 4 or 5 clients on the same server and computer. With my gaming laptop, it started to lag with more than 10 clients on a server on the same computer.

And I’m the proud owner of a new laptop

I got a deal on a two years old Asus G73JW which is way better than my five years old HP HDX 16 except the fact that it has really noisy fans. The point is that I got to reinstall everything and got to try a new color scheme plugin in Eclipse (monokai) and I must say it’s really enjoyable! My eyes were tired of the two bright screens, it’s now way better for prolonged use over night.


4th
Apr

Here’s Minide

The minimalist IDE for Mini C++

Minide stands for “Mini IDE”. This a follow up of the mini C++ lexical analyzer WPF interface I made as an assignment. Right now, it is just an interface but it will soon parse the tokens and it will be possible to “debug” the mini C++ source code.

EDIT: MinIDE already exist… I’m not really going to release my version, so I’m not going to change its name.


You're halfway down my friend.

16th
Mar

“Just in case we would get to travel back in time”

We got to learn the Oracle Codasyl DBMS on OpenVMS which initial release was 35 years ago (1977). And people complain about Win 8!

15th
Mar

Software Engineering tip: divide and conquer

Using C++ functions and classes inside a WPF C# application

Useful tutorial to get started

That is a MiniCpp lexical analyzer form application that I’ve been working on this week. The core algorithm is in C++, compiled as a dynamic library. Since C# can’t handle unmanaged c++ right away, I needed to wrap the dll inside a C++/CLI class lib project that would get me a managed C++ dll to be finally used with C#.

Long story short, make sure you place the dll in the right directory, and expect errors to be caused by a missing dll.

A little more on the app itself

The app features a fully functional standard File menu (with open and save file dialog, thanks to the .NET Framework) and a save changes warning message. Basically, you typed MiniCpp code or load a test file and click the button to analyze the file and get its tokens.

XAML makes it really easy to make the form and it’s easier to understand what’s going on. I like it!


9th
Mar

Microsoft retro-compatibility, oh you! 

image

Let me introduce my feelings on Visual Studio

Disclaimer: I only use C++ so most of the comments below are based upon that fact. Also, though I know that MSVS can compile using any compiler, I had to use the one provided with MSVS to comply with teachers needs.

TL;DR below

I have a love-hate relationship with Visual Studio, except without love. Every time I need to use it—because I never actually use it for fun—everything that might fail goes OK and everything that should have been OK fails for no good reason.

Let me explain that with just a few examples. All the examples below are real situations that happened to me and wasn’t a problem while in another cross-platform IDE.

  • windows.h needs to be included before gl.h in order to use OpenGL;
  • math.h needs the _USE_MATH_DEFINES constant defined in order to use the math.h constants;
  • std::string comparison don’t work with == and !=, the compare function must be used;
  • CTRL+A to select all the code and then CTRL+K+CTRL+F to format the code (with the cursor placed at the bottom of the file) can’t be called a keyboard shortcut;
  • I got tricked once in the past with the virtual directories not really holding the files in the project directory and I shipped a program for an exam without the source code. You can argue that this one was kind of my fault.
image

That is just a few examples that I can remember. Another thing I don’t like when using Visual Studio is that even if I’m working on a one file project, it will create a dozen useless files that weights about 150 MB. Again, I guess that this is an option that I don’t know of and it probably can be turned off.

My latest misadventure with visual studio and its retro-compatibility

I should have wrote: “My latest misadventure with Microsoft and its nonexistent retro-compatibility” because my little misadventure is a misadventure totally because of that. Well, that makes a lot of “misadventure” in the same sentence. So let’s begin.

Prologue

I formatted my laptop (on vista) one or two years ago and installed Visual Studio 2010 only to be able to hand out assignments to teachers. None of them use another IDE, they all use Visual Studio which is provided by the university. I normally use Eclipse CDT for C++ projects and convert them to Visual Studio project if needed.

Last Chapter - The Microsoft dictatorship

All was fine (well, except the situations listed above) until today when I tried to open the visual studio project examples provided by the teacher and find out that those are MSVS 2012 projects and are incompatible with MSVS 2010. I was resisting the change to MSVS 2012 for quite a moment for compatibility reasons but today I was forced to download it. After about 20 or 30 minutes (I have quite a good internet connection), I tried to open the installer only to find out that it was incompatible with my version of Windows. That’s it, I’m done with you Microsoft!

TL;DR - Too long - Didn’t read

I have Visual Studio 2010 and Microsoft is telling me to pay for Visual Studio 2012 only to make me pay for Windows 7 or 8.

That was still too long

Microsoft wants money no matter what!


7th
Mar

Dungeon Twister in Java

The first real game made by myself

That was buried deep inside my laptop, it was made in 2009 in my first OOP course. Each student has to make a Dungeon Twister clone in Java as a learning tool over the semester. Anyway, take a look at the video, enjoy myself talking to you with my beautiful accent and leave a comment!


7th
Mar

Why I’m not using Google+ against Facebook or other social Network

My personnal thought explain with an image

I never go on Google+ because of obvious design flaws. It has been like months since the last time I checked my G+ profile and today I received a notification so I checked it and came across the new profile page design. Needless to say I was disappointed. I first said to myself : “nice a new bigger banner!” but that was it. I then scrolled down to find that the banner follows you and takes up to 20% of the usable space remaining.

Some numbers

All those Google products (Chrome, Google search bar, G+ profile bar) are taking more than 2/5th of the screen. I’m feeling overwhelm by all the bars and uselessly big labels. I know that the useful area is dynamically adjustable for different screen resolution (it actually is better on smaller screen resolution) but my laptop screen is 1366 by 768 pixels which is not that small but not that big either.

Putting a Google search bar that big is like forcing you to install four third party tool bars and, like if it wasn’t enough, they make the profile bar scrolls with you which is even bigger than the Google search bar.

Why would you use Google+ after all?

There’s nothing revolutionary on Google+ that Facebook hasn’t got yet, or is it? At the bare minimum, I’m expecting Google+ to be as good as Facebook and it’s obviously not the case. Just look at the Facebook screen capture. At least 3 posts can be viewed at all time against one on Google+. Facebook is also offering 2 bars that scrolls with you but they only take up to 16% of the actual usable area on the same screen against 33% on Google+, for the same information which is not crucial to the user.

“So just don’t use it!” - She

The weirdest part of this complaint is that I really want to use Google+ and I want people to use it as well but every time I gives it a go, I get repelled from the badly designed Facebook that it is. I like mostly all Google products - even if they sell my email to evil company, if that may help them show me ads that I might click, that’s wonderful - and I’m complaining only because I’m expecting the best out of the Google team. They have the best people and if those people can’t get it to work, they have the money to buy the already-working solution.

Am I wrong or is that a real Google+ flaw? All the features are useless if they’re not fun/easy to use.


Page 1 of 9
 

Oh my god! You seem interested, don't you?