nemesysgames-blog
nemesysgames-blog
Nemesys Games Devblog
7 posts
Nemesys Games is an Independent development studio situated in the heart of Budapest. We are composed of 7 talented, game-loving individuals, with a great deal of ambition and enthusiasm.
Don't wanna be here? Send us removal request.
nemesysgames-blog · 14 years ago
Text
Preparing Content for Tablet-based Devices
When our management decided to port our game for iPad we knew that the biggest difficulty will be making the game content small enough so that people would be able to download it over a cellular 3G network (without the need to connect to a WiFi).  We would like to achieve this without the need of touching the original source PSD files because our graphic artist was already working on our next project.
  Every beginning is difficult
Since the PC version eats up 400 MB of disk space, it seemed to be an impossible mission.
The first step was to pick a good texture format because textures are the largest disk space consuming elements of the game content.  Our possibilities were limited to PVRTC and PNG formats.  However, PVRTC is the natively supported format on the iPad, which means a great performance gain! Unfortunately, it has some limitations like they all have to be squares with dimensions of powers of 2 and, they have a low precision blocky compression which ruins the quality. On the other hand, the PNG textures need to be decompressed first, they take more RAM/VRAM space and can cause slower rendering because of limited memory bandwidth.  Basically while PVRTC is all about reducing memory size in VRAM and not about disk space, PNG is just opposite, it uses a smaller amount of disc space and expands when in VRAM.
The PNG was a better choice for us, since we needed the best quality with the lowest disk space, even with the performance price we needed to pay for it.
PUSHING FORWARD
The second thing we did was to scale down all of our textures by 20% to match the resolution of the smaller displays. Our existing tool-chain easily handled this by altering some exporter parameters.  While looking through the freshly exported PNGs, we discovered that there is a lot of unused and wasted texture space because of some weird object placement and mostly because of the powers of 2 texture sizes. It’s a good thing that (for 2D titles) our system generates all objects from textures by configuration files on our build server.  So, we were able to write a reordering tool to optimize that without the worry of causing invalid UV coordinates inside the objects. The tool repositioned the individual objects and animation frames in an optimized way in the textures and cropped out other parts (the PNG formatted textures don’t need to be powers of 2 sized).
After these steps, the overall size of the textures was 70% smaller compared to the RLE compressed TGAs we used on PC.
Because of a bug in our exporter, every texture had alpha channel even if they didn’t need it. We fixed it, which removed the unnecessary (entirely white) alpha channels regardless of the PSD channel layout which gave us another 10% size reduction.
THE HARD PART IS YET TO COME
We were pleased with the final results however, we knew that it was still not enough (even considering that the iOS application bundle uses ZIP compression).
Our next steps include encoding the sound effects and music files with less bitrates (and with some kind of compression), using binary file formats with less size, and reducing the size of the executable by ignoring unnecessary source code. But that’s a whole different story…
- Zoltan Nyakacska (Nyaki)
0 notes
nemesysgames-blog · 14 years ago
Text
Communicating With the Rest of the World
What exactly does a PR person do? Well, the title pretty much sums it all up.  I came on-board the Nemesys Team not too long ago, and was given the assignment of promoting the latest title, Fortix 2.  This means that I must get a crash course in many things:  the new title, the back catalogue of games, company history, contact lists, who is who, business contacts, different systems of communication, twitter (didn’t use this one much before I got here), and this list goes on, all the while trying to come up with new ideas to promote the new title. 
Challenge accepted.  Much of the getting to know people was not very difficult, but when emails start to pour in from different sites and you start to develop multiple contacts within the same company, things can get a bit hairy.  But, that’s part of the job.  You should know who you are talking to, and you better be sure they know who they are talking to as well.  You don’t want to be someone’s face so they remember you while trying to network, although you do want to give them something to remember you by.  Dealing with people isn’t for everyone but if you want someone to be pleased to meet or contact you again, it’s best to make their previous experience with you enjoyable and notable.
I won’t go into detail about this as it can be a little difficult to describe, as every human is different and should be approached accordingly.  Asking how someone is, what they have been up to, how their company has been treating them, etc. can go a long way.  When you do ask, be genuine about it.  I can’t stress that enough, because if you aren’t it is easy to tell, and you might just be in the wrong business if you really aren’t interested in what other colleagues in the industry are up to. 
Aside from being in contact with other individuals I’ve also put my brain to work on other assignments, mainly promotions.  With the release of Fortix 2, I tried a few ideas with game code giveaways to attract attention.  These included a give-away for every milestone number of followers on Facebook and twitter, giving keys to popular sites that wanted to do their own give-aways and utilizing popular Youtube gaming channels in the same way.  The last two work well as many people are trying to promote their sites as well, so it is a win-win situation.  They have a key give-away for the regular consumers and potential new ones, and you get free exposure. 
There is an unimaginable amount of things you can do to promote your title or studio.  Some require more funds than others, but the free options should always be covered!  When you develop press contacts, stay in touch.  They can be very useful contacts to have, and quite fun to hang out with if you happen to meet at a conference.
-Zach
1 note · View note
nemesysgames-blog · 14 years ago
Text
The Nemesys Way of Porting to the Web

- Introduction
In my first post, I'll try to outline the process of porting our title (Fortix 2) to a very different platform.
We already have our engine (Nemesys Game Engine) up and running on multiple platforms (Windows, Macintosh, Ps3, PSP).
This means, that all of our content and games are automatically exported to applicable formats for these platforms.
- Before
At GDC we had a nice talk with some guys at the google booth, about releasing Fortix 2 in the browser.
They suggested that we should use Native Client, and that way we can have the game running in a small period of time.
After a short research, we've discovered our browser options:
1.  Flash
Pros:  Wide installment, Fast
Con:  Lots of bad experience
2.  HTML5
Pros:  Wide support from
new browsers,
Rapidly emerging platform
Con:  Not super fast with
currently released browsers
3.  Chrome Native Client
Pro: Fast integration
Cons:  Still in beta,
Chrome limited
We've already experimented with flash, and found ActionScript3 a bit harder than JavaScript. Unfortunately, we can't have the usual interface based system in JavaScript, so we've decided to try HTML5.
- Loading the content
Our existing build server solution can easily handle new output formats, all we needed was a new option for the PSD exporter tool.
Except for the textures, everything else (levels, objects, configurations) are in valid XML formats, so they can be read easily, and we have them in an optimized binary format, but we won't need them on the web... yet :)
We've decided to use PNG as our web texture format, so we had our content loadable in in 1 day.
After 2 days of programming, we had the basic structure of the C++ engine, same modules, same functions, class like syntax with some JavaScript magic.
That was really amazing, since at the end of the 3rd day of the project, we had all the levels loaded, we could even switch between them with user friendly links (not like in any other experiments, where your best option was an ini file...). But we've needed some more serious stuff for the game itself. After fixing some render and script problems, we've managed to get the dragons flying in no time, so it was time for the most feared mini project: Capturing and rendering the capture area.
Rewriting the capture (Again, again and again ... And then one more time) We've done that 3 times in C++, we initially did it for Fortix, rewrote for Fortix PSP, and rewrote for Fortix 2. When you first think about it, it's not that complicated.... fencing off squares of the square? That's easy! But when you include features like going backwards, walls or some of our new gameplay elements (that I'm not allowed to discuss yet), it's going to get pretty complicated. And, then you have your boss testing the RC version, one hour before submission, and naturally he finds a new, never seen before, game crashing bug in it. We were certain, that the third version was the simplest, fastest, most stable piece of code that can do the capture.
But, we were wrong. In JavaScript, you have arrays, extremely pleasant, and easy to work with. We had to recreate our own 2d vector library, but that was just a little finger exercise. We could rewrite our C++ code in a day for capturing. But we still had to face the "evil" rendering of triangles generated from capture data. It was always a struggle, and once, even a performance bottleneck (try to capture a really large area in Fortix, and you'll have a hang for a second even on a Quad)
When trying to find out, how to render a triangle, we've come up with nothing... Literally nothing... the only function we've found was clipping...
Clipping? That's exactly what we needed! We've done rendering of the captured area in 5 minutes.
- Dark days to come
We still have to do a lot's of work, like audio, new browser optimized levels, or optimization, as the full canvas rendering of an image is really slow. But we're very hopeful now, and we truly believe, we can do this in a very short time.
Stay tuned for more...
-Peter B.
17 notes · View notes
nemesysgames-blog · 14 years ago
Text
More ports!
Nyaki is working hard on the port for GameTree TV so we can submit it to their contest. Wish us luck!  Our iOS port is looking good as well, maybe next week it will be ready for a release?
0 notes
nemesysgames-blog · 14 years ago
Text
So far this week
This is proving an interesting week.  Some of us are at E3 soaking in all the electronical goodies that the world is trying to sell us this year, others are working ports of Fortix 2 to the iPad / iOS.  Even the level editor is in the mix! 
0 notes
nemesysgames-blog · 14 years ago
Video
youtube
Here is a preview of the iPad prototype of Fortix 2.  We are bringing this one to E3!
0 notes
nemesysgames-blog · 14 years ago
Text
Hello world!
This is our first dev blog post.  We plan to keep you informed as often as possible with projects, updates and whats going on around the office.
0 notes