Object Centric Requirements

2 Comments

The idea that you can look at a problem and find the solution as a set of objects has been a powerful one. There still are very good uses for functional programing and I think there always will be, but in terms of abstractions,  object oriented programing is a good one.

Object Oriented Programing has shown up in our project design documents as well. Look at UML, its all over. But what about Requirements?

More

Thoughts on Game Complexity and Minecraft

Leave a comment

As you all know Minecraft is awesome! Because of that I was trying to figure out what made Minecraft soo awesome. My thought path came down to complexity.

Really enjoyable games are complex. I strongly believe that the more complex a game it, the more rewarding it is. This presents a major problem for game developers, they need to add this complexity. Complexity creates two problems that I see.

More

Windows Application Icon using Mingw and CMake

Leave a comment

If your a cross platform game dev like me, one of the many issues that come up are how to get an exe to have an Icon on windows. Well it turns out you can do it easily with mingw (I’m sure you can get it to work using other compilers).

Here is the link to the stack overflow article  http://stackoverflow.com/questions/708238/how-do-i-add-an-icon-to-a-mingw-gcc-compiled-executable. All you do is create a file, run this program called “windres” on it (It apparently comes on Windows). That turns the file into object code that you can statically link into your binary. Works awesome,  but “windres” is picky about the image file format, so watch out.

It isn’t really very strait forward to get this to work on CMake. The following is code out of my CMakeLists.txt file that seems to do the trick:

# This sets up the exe icon for windows under mingw.
set(RES_FILES "")
if(MINGW)
 set(RES_FILES "Win32/client.rc")
 set(CMAKE_RC_COMPILER_INIT windres)
 ENABLE_LANGUAGE(RC)
 SET(CMAKE_RC_COMPILE_OBJECT
 "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
endif(MINGW)

add_executable(OpenSpaceClient client-main ${RES_FILES})

 

This works by creating some sort of additional compiler that calls “windres” as a RC compiler (RC is a made up name, I think you can use anything). As you can see this only gets run if the development environment is mingw.

I hope this is useful.