One of my recent goals was to implement text and font handling facilities like I never had before but always wanted. Each iteration of my framework got more complete text displaying solutions but they still were kind of incomplete with comparison to my initial plans. This time I tried to acomplish every goal I planned last time and even added a couple of new ideas to the bag. In fact I planned to finish this up in about 2-3 weeks. Given I do this only in my spare time, after my day-time job, this was tight schedule but Christmas holidays were coming and my plan was to use the free time - what happend some of you might guess from the last post. We almost have february and I am still finishing up this part of my engine ;-) I hope this series will be long and regular as there are so many topics that came up while doing this stuff - worth sharing so I will start of with an overview and part on image compositoning and alpha blending.
Sunday, 26 January 2014
Wednesday, 25 December 2013
Merry Christmas! What's been cooking?
This one is just an update on what I have been doing lately and hopefuly what to expect when I am done. But before I dwelve into the gory details I would like to wish you all a happy Christmas if you celebrate it in any form. If not then have a happy time during 24-26th December - why not! But only then, because I am terrible person and life is cruel so don't count on more!
Sunday, 1 December 2013
Tripleboot triple trouble - a short guide how (not) to setup OSX, Windows 8 and Ubuntu
Last time I wrote about my new hardware and disappointments I had with various systems that I tried to install while waiting for my storage hard drive to finally arrive. I think I started struggling to do my perfect setup on Wednesday. Unfortunately I had little time after work so I failed doing something and decided that I have to wait for weekend in order to do this right. These kind of things are so plain stupid, time consuming and worthless but they had to be done so weekend it is! I went to work on Friday earlier then usual in hope of coming back home earlier too. The plan was that I will have enough time to do it all in one strike and the fun begun. This is a short tutorial or a guide on how to make your own hackintosh/Windows 8/Ubuntu developer setup, assuming you have right hardware.
Thursday, 28 November 2013
One rig, three operating systems and shitloads of problems.
This one is totally not coding related - it is more of a ragespree so feel free to skip it, or if you like suffering of others then please keep on reading! There is plenty of it here ;-)
Sunday, 24 November 2013
Reflection in lame engine - Part 2
Previously I scratched the surface of reflection and approach I have taken with my 2D game engine. This time I am going a little bit deeper into the details of type registration, type information retrieval and stuff related with this whole mess that I will feel worth mentioning while writing this down.
Monday, 11 November 2013
Reflection in lame engine - Part 1
Finally I found some spare time to write an article for my blog, short one I suppose, but better than none. I currently have much on my plate but when I capable I try to spent some time on my game engine. One big part of the whole thingy, which is currently really broken btw, is reflection mechanism. It took me quite some time to plan the whole thing, do research and while there are still some issues I need to solve and parts that need refactoring (or even proper implementation alltogether) the core is actually functioning and I am quite happy with it. I plan to make a series of articles as putting it all together in one piece would be mundane task for me, and probably even more painful for potential readers. The first article in the series will talk a little bit about goals, overall design, API interface and some random stuff.
Monday, 21 October 2013
New year, new challenges, new goddamn errors...
Yesterday I was doing some stuff to my personal project when I stumbled upon some freaking compile error which made no sense in the given context. Well, the thing is, I started this blog as my personal vault to keep things that I should remember or I was really proud of (not that I am not proud of anything - number of posts is a lie!) and my recent waste of time was a precious experience I want to avoid in the future.
It is always your fault is a mantra that a good programmer should be aware of and embrace it but don't fool yourself into thinking that everything around us is perfect because it is not.
Sunday, 23 September 2012
Welcome post and annoying link error.
Finally I got some spare time to actually write something on my blog that I planned to do so almost a year ago. In the meantime I was able to get my bachelors degree in computer science (actually last Friday) and finished the accompanying project. The title of the thesis is "Design and implementation of a 2D game engine" and the project name was LAME engine. This might give a hint to what kind of posts you might expect to find here in a near future.
I am planning to publish some stuff directly from my thesis in a little modified form, as there were a couple of interesting ideas presented. In addition I am currently working on a brand new project that I am really excited about and have a lots of ideas, so the ground to cover with my programming experiments is quite large and I will not hesitate to share with you with my results.
Finally as a little bonus to this introductory post I would like to share with you, a rather unusuall (at least for me) error that cost me at least 3 hours of scratching my head, tearing the code upside-down and shuffling includes back and forth.
All I got was numerous susspicious linker errors saying about Unresolved external symbol. We all had to struggle with them at some point, but I consider myself a person after his share of fights with these errors and I was able to fix such very quickly. Well not this time. In addition what was even more strange was that cleaning the solution and rebuilding gave sometimes different Unresolved external symbol! It seemed as these were random. The structure, the includes etc. everything seemed perfectly fine (and to point out, they were perfectly fine) so it drove me insane. These unresolved symbols appeared always in one of two files in the project and they appeared after the new was actually added yesterday, but these files were not even connected at all.
Things between me and the linker got intense. As I was about to choke him to death I realized that I should carefully read the output for any additional clues. In the lengthy log file I found a hint:
warning LNK4042: object specified more than once; extras ignored
This was Types.obj, so I went back looking for places where I could have broken include guards, or whatnot.
After some time I finally realized that the problems started when I introduced a new files (Types.h again) while merging my network library into the existing, larger, solution. Although, everything lived in its own folder and I had filter hierarchy in Visual Studio, somehow this was the problem.
So I had core/Types.h and network/Types.h somehow colliding. The solution was really easy but quite tricky to find out.
As it seems, Visual Studio flattens the whole hierarchy when producing output files by default. Therfore, whatever file (Types.h) was compiled first it was used everywhere, even where it shouldn't have been used.
Probably one way to fix that would be change the filename to something like NetTypes.h and fix #include statements everywhere in the code, but it was easier to explicitly say the linker to output files in their rightful place in the hierarchy.
To do that all I had to do was:
Go into project properties -> C/C++ -> Output Files -> Object File Name
and change the default $(IntDir)/ to $(IntDir)/%(RelativeDir)/
Hope It will help someone having similar strange issues.
Subscribe to:
Posts (Atom)