Something has been started
Some days ago I decided to write my own 3D game engine. I’m not planning to finish it (although, it may happen that it will be finished someday), but it’s something I can experiment with.
Created a free account on http://www.assembla.com/. Started to write engine interfaces…
Overall, I feel like being home again!
New (old) interests…
Today I’m starting again to study D3D, like old times.
I think it’s best to start from 0, because I didn’t touch D3D in the last 5 years…and it changed a lot.
Some good starting points:
- http://www.euclideanspace.com/maths/index.htm
- http://www.gameprogrammer.org/main.php?page=tutorials&no=92
- http://msdn.microsoft.com/en-us/library/ee416436%28VS.85%29.aspx
…and a good hosting site for my code: http://offers.assembla.com/free-subversion-hosting/
Rock on!
Autorelease crash?
These days I got a strange crash report. The application was crashing at: libobjc.A.dylib!objc_msgSend + 0x18. It is from an object being released manually before it’s autoreleased.
Call stack would not help me, cannot reproduce the crash either…better, it crashed, but not deterministically.
You got it too? Now try the following:
- add the following environment variables to executable arguments:
- NSDebugEnabled: YES
- NSZombieEnabled: YES
- NSAutoreleaseFreedObjectCheckEnabled: YES
- run the application, try to run every scenario, start with most used features.
Got it? Fix it!
Accepted
Yesterday evening I had a surprise: finally I was accepted into iPhone Developer Program.
Today got my certificates, and finally, my little game ran on my iPhone. Still, I got to work on it, but it’s 90% ready (playable on my iPhone) :).
In the last 3 weeks I’ve been developing UI thingies in Objective C/Cocoa, and I can say, it’s the coolest language/GUI framework I’ve met 🙂 (IMHO).
[hello world:@”I’m back”]
I bet you were thinking, that I’m lost :). Wrong.
I had a break in studying something new. A month ago I became father of my 3rd child, and with this opportunity, I’ve started to learn Objective C and iPhone development.
I realized, that getting to do a fairly new game engine, that would fit on the market, it’s too big for one person, so I moved to mobile development. iPhone and other similar phones have similar hardware that computers had about 10 years ago – were you thinking at that time, that this will happen?
So, I compared the leading mobile OSes:
- Android: Java, open source, variety of hardware
- iPhoneOS: Objective C, closed source, strict application regulations , OpenGL ES 2.0
- Windows Mobile: C++, 6.5 is pretty deprecated, DirectX
- Symbian: C++, pretty old.
I have chosen between Android and iPhone, because the other two are obsolete (IMHO). Android is only programmable in Java, that makes it not the best platform for games, so iPhone was the winner.
I’m writing a small game for iPhone, I’ll link it here when it’s available on AppStore.
Back to XCode…
More to come!
I have great news: I’ve been called back to Macadamian.
I know what you think: it’s over. No, it’s not, this blog (with the project) will roll, only slower a bit. In the four years that I didn’t really touch OpenGL and DirectX things have gone far, I don’t want this to repeat.
From now on, this blog won’t be only about my project, it will contain my professional thoughts too.
Roll on!
More on the road…
These days I’ve been reading around about sparse voxel octree and things, because I want to reinvent the wheel in my way. I’ve done this before (3D game engine), but now I feel that I can do something new now, what I didn’t do before.
Some hints what I’ve been reading (and still reading):
- John Carmack on id Tech 6, Ray Tracing, Consoles, Physics and more
- Carmack: Sparse Voxel Octree
- Current Generation Parallelism In Games – Jon Olick, id Software
- Volumetric Scene Reconstruction from Multiple Views
- OCTree Voxel Modelling with Multi-view texturing in Cultural Heritage Scenarios
- Don’t Reinvent The Wheel, Unless You Plan on Learning More About Wheels
Happy reading!
PS: Waiting for OpenCL.
3rd Day
You’ve wondering where I’ve dissappeared? No, no, I didn’t, I just realized, that there are many flaws in my C++ knowledge, so I’ve been reading, reading and reading. It’s never enough!
2nd Day
Got trough path configuration today, but that’s one more point to my linux skills. Changed the IDE to Code::Blocks for now.
Guess what? I’ve got a cube displayed in an OpenGL window!
Initially, I wanted to use GTK too, but I’ve changed my mind. One thing at a time. The application consists for now of creating an window through X server and drawing a dummy cube.
There’s more to add here, like exception handling, add parameters for the window setup (read from ini file). Also, I’m planning to rewrite later the window creation port to GtkGLExt.
Have fun!
1st day
I’ve installed my Ubuntu desktop, ATi driver, got Anjuta, got OpenGL libraries, wrote my first linux program (output dummy text to console – eh, not really the first, but I did write the last one long quite time ago).
In one word: I’m ready to rock!