Posts

Showing posts from 2016

Engine interview question

My friend know someone who is going to have skype interview for a position as engine junior programmer. I was asked for some guide or hints for this person. I think that this topic is interesting enough to change my long reply into nice post and hear what you think about it:) My email to him looked like this: " First he should stop being stressful and asking question of others what can be on interview. If he has knowledge and luck he will pass. Sometimes is more about luck than knowledge but generally If he will get too stressful, even luck won’t help him. About question they can ask whatever they want from just: How are you? Where you were studding? What you were studding? Why do you decide to have interview with us? To more technical one like: What programming languages you know and how well? What engines you know? If he sent them CV there will be probably few question about stuff you put there. If he worked previously somewhere I would expect question like: What y

Game development

Image
This time something inspired by this twit: I guess this illustrates a serious problem with how gamers see game development effort :/ #NoMansSky #gamedev pic.twitter.com/H0ZDxojWpk — Kornel Kisielewicz (@epyoncf) August 14, 2016 If you look really general on game development you can compare it to assembling puzzles. A lot of people know about game development from articles, making of videos and few other sources. They also know that there are different options that developer choose when they started: 5000 pieces - Making small game on ready technology. 8000 pieces - Making small game with technology. 12500 pieces - Making game on ready technology. 25000 pieces - Making game with technology.  This don't sound so bad, so why developer don't make their job properly? People complain about some bugs, some features, about how simple it would be to just add this one feature. This is so frustrating for them because this is so simple (like assembling puzzles).

Code pollution

Image
Well time fly by and animation system starting take shape. Thanks to it I could do even some not bad looking animations in game (http://coffemonsters.blogspot.co.uk/2016/05/lba-preview-15.html) but well this is just another milestone in road to finished game.  Because of this thoughts I already moved to next issue: recovering of movie system. So far its going fine I added new movie resource, movie editor module. No I starting adding basic functionality: adding keys. This operation require list of selected objects in level. This part was designed great :D Because I can have N levels loaded in memory in the same time I created new level component which exist only in editor. It contain some editor specific data i.e. selection. It's added on loading from editor and it's not saved with level. When you want list of selected objects just pick component from level and I have access to selection. Great idea right ?  I thought this way when I was writing it. Right now I

C++ riddle

This time small C++ riddle which took me some time to figure out :) Background: My editor currently use sockets connection to pass data between Qt UI and "Editor module" in engine. Inside editor module this happen on two threads: Processing events on editor module side Receive data and send result of events back to UI.  Code of two main function execute on them can found bellow: Processing events (Show/hide) EError CAppEditor::processEditorEvents( void ) { if (!m_eventsToProcess) { return EErrors::Succeeded_NothingToDo; } SEvent * events = wrAtomic::exchange(&m_eventsToProcess, (SEvent*)nullptr); if (events != nullptr && events->next != nullptr) { SEvent * rEvents = nullptr; while(events != nullptr) { SEvent* tmp = events; events = events->next; tmp->next = rEvents; rEvents = tmp; } events = rEvents; } while(e

My little monster

This story started long ago while I was still student at University of Technology in Wrocław. It was probably year 2006 but I'm not sure right now. With time passing by all previous years slowly starting blending together but well I'm already at this age where this is pardonable. On one of C++ courses we got exercise to do program of our choice to show that we learned language. I decided that isometric game in SDL software mode will be great idea. And so I started working on it. What a great joy I had when everything finally started working together and I was able to send it to person conducting classes. I got passing marks and this was end of story.  Well at least for a lot of project this would be truth but in this cases there is a lot more. Some time passed and with friend we decided to make casual game. Code from course project was really useful but software rendering were too slow so I switched whole stuff on OpenGL and some time later we finished  "Pirate Cr

My bookshelves.

I realize recently that I'm weird programmer. If you would look on my bookshelves you will find there: manga,  fantasy books, movies art books, games art books, books about drawing,  books about anatomy, books about animations, D&D manuals. What you won't find there is any programming book. My only book kind of in this topic is Showstopper about development of windows NT on my kindle. Which is in the fact not programming book but more story of people who created it and I'm still in middle of reading it :)  The other book I reading is  "The Animator's Survival Kit: A Manual of Methods, Principles and Formulas for Classical, Computer, Games, Stop Motion and Internet Animators." which is for me really interesting. So far I finding there a lot of interesting advice which some even apply to programming. And this is weird because as programmer I probably should read some books in my field of work. But I don't fell any push into

Plans, real life and monkey job.

Funny thing about planning is that sometimes its not working out the way you want. This was case this week I planned to work on animations and ended doing small upgrade for resource system. The best thing is that I don't even feel bad about stuff ending this way :D  How I ended doing that is other story. Because I have policy of moving everything what I can to resource system which I have (this make stuff more consistent) I moved my rendering script to it. Everything would be good if not the fact that render script is initialized on main thread and my resource system never was prepared for request from other thread than game thread. So it was time to do improvement to allow for this :D This was even more important because there were sometimes crashes at startup of game. I split my task on 3 sub task: Access to resource data require locking of resource (i.e. meshRes->lock()->getMaterial();) Separation of resource from data so you could have resource handle and it

After break

Image
I took some break from writing on this blog but I had busy last few months. In this time I done a lot of changes in engine one of biggest "finished" one are changes in file system. But this time I don't to talk about what I done but more about what will come and what I working on right now. And I do some stuff with which I'm not feel most comfortable: Animation system. So I decided to seek some advice and explain what I do, why and how I would like to improve it. So be free to comment and critique. I don't fell that system I have right now is what I really want to have. This is this weird felling when you fell that system that you created is working but you fell that it's limiting you. Because of this felling recently more often I turn of computer and sit down with pen and notebook and think what I really want to do with this system. So far my conclusion is because I'm iterative develop White Rabbit Engine technology I didn't notice till n