(Especially after writing series of lengthy compatibiilty blog posts…)
(Especially after writing series of lengthy compatibiilty blog posts…)
Okay, here’s some of the stuff you didn’t see yet in the recent compatibility posts. I should have been clearer and give more information about what I’m currently going through. The 2D versus 3D didn’t like occur because one day I ate wrong type of mushrooms or anything. I tested quite new version (not the newest though) and saw that there had been some major changes in how the Leadwerks engine works.
Here’s some points:
#1 – Some ATI users reported black screen problem with older Leadwerks engine
This has been said to be fixed in the newest version.
#2 – Some people reported lighting issues (no textures showing)
This also got partly fixed by using a newer version.
#3 – Newer Leadwerks version changed controller behavior
In the new version, the character controller works completely differently than in the earlier version. My game has barricading system where you could drag’n'drop boxes to build your defense. In the new version this no longer works because the guy starts flying when you move box too near the guy (or an enemy). Basically… it starts acting really weird.
Now, I did partially solved this problem by disabling physics for draggable objects, but this isn’t a long term solution since there would still need to be some sort of code that would ensure that the object isn’t dropped too near any other object or otherwise physics act weird and gameplay suffers. Character controller is key thing in the game (it affects all the physics that the character faces).
I could use the older version (where it worked okay), but then I’d be facing the bigger compatibility problems (people reporting black screen, which should work in newer Leadwerks).
#4 – Newer version have only DDS format support
All my content has used .JPG or .PNG textures and materials. The new version requires DDS which means that I needed to change all my texture files to use DDS format. Most of the old content is working fine now though (since I went through this stuff), and DDS is a good choice for texture/materials.
Of course when engine drops support for certain files and starts having support for only one file type, it means that people using the engine need to upgrade their work.
I’m mentioning this merely as an example of something that has happened (and something I’ve tackled quite well) to give you a better picture about what’s going on in my thinking.
#5 – Never version also require people to have up-to-date drivers
I was under the impression that Shader Model 3.0 has pretty okay coverage (Valve’s hardware survey reports “around 50-75%”), but it seems that people still need to find the latest video card drivers for Leadwerks powered games to run properly. Some people reported problems on the forums and those got better after they did the upgrade. I don’t know if this happens a lot, but I think average Joe won’t be upgrading his drivers so easily…
Yes, I know that changes should happen early, not late
I’ve done software projects for quite a while and I’m aware that changes should happen as early as possible. Even in agile projects this same holds true: it’s good to get things sorted out early in the sprint before actually coding anything.
But… this isn’t just about 2D versus 3D. It’s a compatibility issue that’s getting better in newer versions. And when I choose to use newer versions, it means changes in my existing code.
The compatibility problem I’m facing is a two edged sword: I have one more major change in front of me, no matter where I look. If I go forward with an older Leadwerks version (which has poorer ATI support) the compatibility problems are simply too huge (so this option is not possible). I’ve upgraded to a bit newer version to test it out. I worked with it, and now it seems that I gotta start making couple of major changes to my existing project such as the player character controller, which now works ‘decently’ but still has that major bug which is quite tricky – and takes time away from coding actual features.
And after all – the 3D – what kind of support it really has after all?
And these lead me into thinking 2D
…and because I’m facing a compatibility dilemma (that can be somewhat helped with upgrading the engine – which of course means continuing the work to get my game”s existing features to work properly). At this point I started thinking about what the game would be without Leadwerks – what it would be to do the game with BlitzMax only and how much existing code could I reuse? I’ve programmed my game using a pretty good object oriented and encapsulated code, I thought I could limit the main part of the changes to a handful of main classes – and that I would test first to see how much time it would require to take step back to 2D.
My main concern is the compatibility (and the fact that the new Leadwerks engine changes that can improve the compatibility affect directly my game). What happens in the future versions – will there be more changes that help compatibility? What kind of changes do I need to make for my code and assets to get the newest versions working? Will there be similar major changes that require me to go through all my art assets to improve compatibility? (Aka, how much more work it is now and in the future patches to ensure better reach?) If I don’t use the newest version (and don’t need to go through many more changes in my existing code), how good compatibility it provides?
In retrospect it’s now easy to say that I should have thought about this issue more (and not just rely in the thought I had “in 6 months the compatibility & computers get better”). I did make a point about compatibility in Leadwerks review few months after choosing the tool, but at that time I thought that the compatibility would still be perhaps bit better that the versions I’ve used have proved to be. I thought that the engine is ready enough and that compatibility issue would get better (and it indeed has). There has been some critical changes (mainly ATI card compatibility issues) that are close to “have to get” for my game (and this of course meant doing changes to my own code).
To “break away” from this situation, I started pondering using only BlitzMax (aka 2D) to program – and continue using the code I’ve used so far (without the 3rd dimension of course) as much as possible. That’s why I wrote some thoughts couple of days ago.
Releasing a game is a good idea – can’t argue with that
With that being said, I do think that it could be a good idea to get the 3D version out and test how it works. I’ve already done some part of the changes (still missing some stuff like the “barricade bug” – which is a major one – that appeared due engine change). With the new version there has been new changes (like mentioned earlier) which means that I haven’t got all the planned features for the upcoming version (due the fact that I have needed to get my existing code to work properly). I’d like to get “some more features” but I also think that at some point one gotta get the game out.
Things aren’t so black & white, but perhaps this gives you a bit better picture about my situation and what lead me into thinking about this “2D versus 3D” right now.
Maybe this also replies to the rest of the points that people made in the earlier posts.
Merely mentioning words considering “switching tech” got an avalance of replies and I thought it might be a good idea to reply the comments here and clear some things. I admit that I perhaps should have given more details about the situation, but one thing is true: it’s good to express your thoughts and tell somebody what goes on in your head. I think I’m getting a clearer idea about how I want to proceed.
Who the heck I am and why you should listen to me
Before I reply to any of the comments I think it should be appropriate for me to tell a few words about myself to give people bit of insight of the stuff I’ve done.
First of all: you should not listen to anything whatsoever I say. :) I think that people should use their own brain and I think this blog actually attracts that sort of people. I think indie game developers (or whatever people wanna call themselves) have started making games because they know how to make their own decisions, and follow their own path. I think you should question everything I say. (Or what other people say for that matter)
With that being say: I have no problem if you read the stuff I put here, and then use your own judgment to see if the stuff I say makes any sense.
Little bit of my experience
I’ve been programming stuff ranging from games to web software to betting application that could predict the results of hockey matches (that never quite didn’t work out for some reason…) for more than 15 years now. Ten of those years can be said to come alongside with project management work and can be really counted. First 5 was close to “testing waters” and not sure if much of those were really programming (well, I did create that betting software that helped my borther earn 100 bucks from one match – that counts for something, right?
I was the other founding member of Indiepath Ltd. Tim there is a really pro guy (and doing very well). We did couple of games together among with some game developer services (GameRelease.net being one of them). Doing stuff at Indiepath was cool, but Tim and I had bit different visions on what we wanted to do. For that reason he continued his stuff at Indiepath and I founded my own company late 2005.
I graduated late 2007 from university (software business, marketing): they gave me some sort of paper that says that now I have a fancy title that I can use. I liked the university period but thought that some of the stuff that was done there was bit like waste of time. Although I think there’s some flaws in the university system (what system wouldn’t have?) I think many of the courses were fine, and I think it has got me many good stuff in many areas. During the university studies I also did some part time software development.
After getting away from the university I’ve continued doing part-time/contract work and while at the moment don’t make a living in the gaming industry, my company does bring me decent five figure income through various streams of income (which is pretty sweet). I write about the stuff I learn here in this blog and since I’ve got some feedback from guys who work at gaming studios saying “you’ve got some good stuff in my blog” then I suppose somebody finds something useful from this blog. I personally think that I’m the one who is learning most – and if you guys can learn/benefit from this site too, that’s great.
I don’t claim to be an expert (on anything), but I do know little bit of what sort is useful in gaming business. I’ve done some projects that took very little time, were finished fast with little resources and even gave me very nice income (I haven’t mentioned it earlier, but Highpiled was actually a very successful gaming project in terms of “time spent versus all bucks & good stuff it brought to me”. Sometimes I manage to hit the nail so to speak).
I’ve done gaming projects where I’ve spent months and months of time, pouring time and energy into something that eventually got cancelled. So, sometimes things do go out so well – but that belongs to the learning process.
I’ve thought that “when it’s done” is bit bad approach on deadlines, since although things need to be fun gaming is also about business (if you are kind of serious about this stuff). This was my own thinking, and when Harvard Bonin (he was at EA back then, and in my opinion actually knows what he talks about) mentioned that “game companies are business units which have also financial targets”. He said that “‘when it’s done’ approach is okay if you have unlimited resources”. I kind of agree with that, and I try to follow that advice too. (I’m not suggesting that this is correct or that you should follow this advice – there might studios where this advice could very well be a bad advice actually)
I’ve exchanged words with real pros (indies and AAA producers) who are really good at what they do (you can see them commenting in this blog every now and then – and hey, maybe it’s you who I’m talking about). As far as I’m concerned, I’m like a sponge sucking all the information I can. I read a lot. I do my best to put the stuff in use. I try different things a lot. I try stop doing less stuff that doesn’t work and do more of the stuff that does work (as long as it’s fun).
Okay, that was little bit of background… and perhaps clariefies a thing or two. I presume I gotta update my about page and give bit more information about myself and not just assume that everybody who visits this site can read my mind. Anyway, hopefully this small text clarifies a bit about who I am and what I’ve done. Basically I’m one happy camper who does some gaming stuff online and is building a decent company around the crap I do.
If people like what I do and write here… that’s cool. If not, that’s cool too.
Now some blog post answers:
Now… to answer to questions in this blog post:
Hmm, the screen should never go black ever. Even if the guy does not have sufficient hardware to run your game. He should get an error message. So I am not sure if its compatability or just a bug?
@Sargon: Sorry, I should have added that “of course I tested this first and asked people to try the new Leadwerks evaluation kit (that has zero my code)” with the same result. People tested the Leadwerks system (and I’ve reported some of their logs at the Leadwerks forums).
Also should have added that Leadwerks requires Shader Model 3.0, it uses OpenGL and it is recommended updated to latest video card drivers.
So yes, 100% sure it’s compatibility. Sorry – this was my bad. Should have been clearer. :)
Of course, going into the 2D realm will make things a lot easier.
I’m also considering the time and money spent. But yes, that’s true. Maybe simpler too…
I would probably drop Leadwerks, but not 3D all together.
@DtD: That I won’t be doing. I did the mistake of leaping into NeoAxis and C# which I had zero experience. It meant heavy learning curve.
Leadwerks is a framework for BlitzMax (and I know Blitz3D inside out and BlitzMax is practically “same but with object oriented support” – to simplify a bit). I’m very familiar with BlitzMax too and can program stuff with good pace in BMax. I have no plans to drop Bmax, and from the 3D engines I checked some months ago Leadwerks seemed the most finished (although there’s some other DX9 options available as well – but it would again require learning new things: Leadwerks uses Blitz3D commands so this combination is super powerful for me).
I recommend people to stick what you know best (Update: Sargon has a good point in this in the comments section, check it out). BlitzMax and Leadwerks are very familiar to me so I think it would mean months and months of additional work to learn something else. I could go with BlitzMax and perhaps get stuff done more efficiently.
I think, I have been folowing your blog for more than 3 years now. In that time I release 4 games. How many did you released? I think it’s time for you to release a game or you will lose credibility.
@Ovo: Thanks for following my blog for these years and thanks for commenting. I remember your insight in various blog posts and really appreciate you taking time to comment.
Answer: zero games (well, one mini game Highpiled)
As for games published, I stopped Edoiki at some point and then have done about 9 different (public) versions of Dead Wake, but that’s about it.
As for “or else you’ll lose credibility”. I must say that I’m not doing games to gain credibility (not doing anything to gain credibility). I think it’s nice to be important, but it’s more important to be nice. I have kind of a ‘zen’ view about what other people think about it (in a good way I hope) – and I’m not suggesting that you’d be any different. (I think I got your point)
I do appreciate everybody’s comments and I’m really grateful to have you guys reading this stuff and commenting and helping me out. I hope you understand (nah, I know you think the same about yourself – and that’s good, right?) that in the end it’s me who decides what I think about myself. I do my best to help other people out, and I appreciate all the feedback – but in the end it doesn’t matter to me what other people think about me. If people like the stuff I do, that’s cool. If not, that’s cool too. It’s cool either way.
I’m not doing games to score points or gain credibility (but again I think I got the point Ovo – and I’m not suggesting you’d be doing this. I do understand that guy who talks about finishing games needs to actually do the same). I do games for players, and their opinion in the end is more important than what developers say about my games (I think same should go for every developer). I do get the point about “finish the game”, and I think it’s easy to come up with excuses not to. It’s easy to “change tech every now and then” and come up with excuses, and blame outside conditions, and it requires much more from a developer to actually finish things.
Sometimes one can get into tricky situations, and needs to ponder things. I perhaps should have been clearer about the compatibility issues and mention more details the points I’ve considered. Besides the main compatibility there has been some new big changes with the new Leadwerks version: necessary content graphics updates (it no longer supports certain texture files for example), different controller behavior (that behaves completely differently than the earlier version) to mention few – most of these I’ve tackled so far, but the compatibility is still the main thing that I worry a bit. In that yesterday’s blog post I didn’t tell much about the current situation or much details about the emails I’ve got. The yesterday’s post gave some info, but not all that goes in my mind. I think it’s good to ensure that you do the changes for the right reasons – and I think ovo’s post is a good challenger.
Whatever you do (releasing soon or not) you will always have a huge amount of problems with your game. It’s a learning process, and you improve a bit after each release. But if you don’t release you’ll never learn these things, even if you read about it… Living it for real is different.
I really agree on this. I wanna grow my business and have fun while doing it. This isn’t a hobby for me anymore. It’s grown bigger than a hobby… and I plan to keep that way…
Stop changing tech every 2 weeks and release your baby. You know I’m right
That’s a good piece of advice, and I recommend that same to others too. The later the changes are done, the more expensive they become. I know you are quite right, but I also must say that I haven’t revealed the full picture (and perhaps I should have been more clear about this).
You are almost about to fall into a trap that a lot of developers do, and once you go there, getting out is really hard. I’d hate to see that happen as so far, you have one of the most “completed” and “working” games made with the Leadwerks engine on the forum. You being able to finish your game and get it released would be a good inspiration for a lot of developers who are in limbo right now using the engine.
Don’t give up. Keep working at it, get it updated to the latest version, try your best to squash any bugs, then let er’ rip. Don’t look backwards, only forwards from here on out. If you are worried about quality and compatibility problems, don’t charge money for the game; if it’s free people have no basis to whine ;)
@pushedx: Thanks for the support. One thing I must say that people have every right to whine (at least if they provide something useful feedback). “Whining” is good since then you can find the weak spots easier. I’m using the “almost newest” engine and part of the problem is that Leadwerks also changes which impacts my own project.
Newer versions provide better compatibility and video card fixes, so it’s important to get them – but meanwhile other things change as well. For example, the new Leadwerks engine version allows only .DDS texture format, while earlier you could have also .PNG. Basically this now means that I need to manually go through each of my .PNG files and materials (thank god there’s not horribly many of them, and they are in proper places) and update them to use DDS textures. (Luckily this isn’t too big thing) There’s some figures about how well Shader Model 3.0 is supported (Valve’s hardware surveys), but right now I’m not so sure how valid those figures are after all.
Haven’t decided anything yet, and really keen to read all the comments and ponder different options.
To be continued… (There were so many good points that I wanna answer all of them, but that will happen in the upcoming posts. This one is getting way too long)
Here’s some rough ideas how I see 2D versus 3D. I must say that the points mentioned comparison aren’t necessarily always valid for all cases (for example, even though I 3D games usually require more power from computers, this is just “usually”. In terms of performance it’s possible to use things like Instancing in 3D – if the video card supports it – and get speed improvements compared to if the same effect would have been wanted to do in 2D). Anyway, here’s some of my thoughts about 2D versus 3D.
Strengths of 2D (compared to 3D)
Strengths of 3D (compared to 2D)
My bottom line:
This isn’t a list carved in stone and doesn’t represent the final truth. These are just some of my opinions, and I realize that there’s both 2D and 3D games where the above points don’t hold. While AAA studios are doing 3D games, there’s also big studios working in 2D. There’s casual games made in 2D, but there’s also some made in 3D. I think one should think of his own goals, skills, resources and plans he has for the future when thinking of which path to follow. (And in my experience – just check my yesterday’s blog post – I must add that it’s good to have pretty clear idea as early as possible if you wanna save time & money…)
What about you? What you think about 2D versus 3D?
I’ve been doing Dead Wake zombie game development for a quite some time now and I initially aimed to do a launch on this month. I’ve been messing around with the new Leadwerks update and updated parts of my code to reflect the changes.
In the back of my head, the compatibility point has raised its head. After releasing the new version I’ve got replies from people about the ‘screen going black’ emails (but also many ‘the shadows look awesome’).
I haven’t updated the existing content to use the new texture format (which basically means I need to get my 3D content up to date to be able to use it properly in game). I’ve also pondered more about the potential audience and even though I’m getting closer and closer to the release, I have second thoughts about the release & compatibility.
For that reason, I’ve dug some information about 2D versus 3D and I’m re-thinking the possibilities stop using the Leadwerks 3D engine and continue with BlitzMax alone. I know this is a big thing, and definitely something that I really should have examined more several months ago.
I know that taking away Leadwerks and proceeding with BlitzMax alone would help build more compatible game, but it also means major change – and delay – in the project.
I have listed pros and cons (and will mention these in a general level in my next post), but I also thought to simply try it out and see how it goes. I’ve coded my game using a decent encapsulation or following the “black box” tactic (classes interact with each other as little as possible), so I’m trying out what would it mean to take step away from 3D to 2D.
I’ll report back how this goes. (Feel free to give your thoughts as well)
In yesterday’s emails about April Fools Day there was a guy who wrote a letter that needed to be rewarded. These proud developers took action and donated a copy of their game to our anti-pirate.
People: go and buy games from these sites:
(By the way, now the Bounty Hunter site that initiated all this has got more than 600 visits)
So, yesterday it was Aprils Fools Day and my bounty hunting blog post of course was not real. Here’s some stats the site got, and some emails I received – names taken away of course. (Mots of the comments and emails I got were people wishing happy Aprils Fools Day, although there were actually some very encouraging emails too)
Yesterday, the BountyHunters.fi got 394 visit and 410 page views. Sources:
The site made it to Techcrunch, with a comment:
This company’s mission is to track down software pirates who share video games illegally. They’re looking for new bounty hunters to join their team. “If you can’t beat your enemies, beat your friends”
(Check out their page, there’s nice list of April Fools Day stuff)
I got couple of congratulation emails saying “too bad you are not making games any more, but good luck”. One guy was bit hesitant: “Today is also April Fools day. If you serious you picked a bad day to do your announcement.” (Indeed)
I also got 2 very nice emails: (I won’t be mentioning names though). One was from one dad of 4 boys:
Glad you enjoyed the ride on the Game-making adventure.
Interesting that your next adventure is going after software pirates.
Are you going after the techniques used, or trying to bust the violators?
I have 4 boys who are pretty good on computers and always looking for games from friends (much to my disagreement). They are always trying to get ISOs from P2P servers (yeah, ridiculous 1bit/sec) and CRACK codes. They keep finding new stuff (well, new to me) like Hamachi server. Are you interested in stuff like WHAT and HOW they do that stuff?
Now now dad, who is the one who ordered the grand internet connection and who is the person who gave these boys computers? (Just kidding here – a bit.)
Check this email: young guy wants to stop pirates
And last but definitely not least is an email from a 16-year old kid who applied for a job (again won’t be mentioning names/addresses). To be honest, I think that this email shows that we are really talking too much about pirates and concentrating on them. Look at what this youngster thinks about piratism:
Hi my name is (edited away). I am 16 and I live in (edited away). I want to work for your company to stop pirates. I have unlimited time on my hands, so I want to be able to use that time to stop pirating. I want to rid the Internet of these disgusting people who take away all the hard work and money developers put into making a game. Since I do not have a job and I (edited: something taken away), I can use all my time to help your company in stopping pirating, and shut down sites like (edited, taken away urls of 2 major pirate sites) and bring justice to the pirates themselves.
I believe I have all the necessary skills for your company to track down pirates and report them. Using all resources available, I will stop every pirate possible. I hope you see me as a suitable candidate for your company. Thank you for your time.
(Of course I hope that this email was not Aprils Fools Day trick done on me…)
When I was 16, I think I was pirating close to everything and anything. I did buy some games, but the 80 000 other video games I owned were pirate copies. I think that emails shows (and I’m quite positive that it’s a real email, not tricking back at me) that there’s also young guys who really dislike piracy.
I think this guy should be rewarded, and for that – I’d ask your help.
Since I don’t want to share this guy’s contact info (unless of course he chooses to do so), I’d like you to donate a game for this guy. If you have created a game, please consider emailing me and giving download instructions / registration key (or whatever it takes to get a copy of your game to this guy).
I’d like us all to donate this guy a game – and show good will. I think the satisfaction from giving a game is a reward on it’s own, but I’ll also put a little extra, and will list every donater’s site in this site.
We developers have tendency to “whine” about piratism, and I’d like us to show good will and stop whining and start rewarding behavior we want. If you’d like to join this short “campaign” and reward this kid for his good actions, then please email me and give me instructions on how can I forward the free copy to the guy who wrote that email.
Thanks in advance.
And happy Aprils Fools Day – hopefully my yesterday’s trick wasn’t (too) cruel.
Check out the next blog post showing emails and comments I got.
I’ve decided to stop making games and pursue with something else. I’ve renamed my company to Bounty Hunters Ltd and will be proceeding with software pirate bounty hunting. This is the last blog post here. Thanks everybody for coming here over and over, it’s been great to write the blog all these years, but now it’s time to say good bye.
Check out the video and the new website (link in that video) for more information.
From now on, you can reach me via: BountyHunters.fi (due heavy traffic we’ve reached the site might be offline. If this is the case, please check back later).