Blog Moved!

•July 17, 2010 • Leave a Comment

I moved the blog to:

http://www.twilightempires.com/blog/

This is because of WordPress limiting functionalities, with the new host I am much more free and the blog will look much better!

Note, the new site might be a bit slow at the beginning but I was told it will improve fast and soon 🙂

Some time off… :(

•July 3, 2010 • Leave a Comment

I am very unhappy with this but I need to take about 2 weeks off programing (and probably blogging too) in order to get ready for my Chemistry exam next week.
The thing is that my new semester (yes I have summer semester) starts this week too and my last semesters chemistry exam is only next week. Oh, I had my biology exam 2 days ago! Grats!

I am a bit disappointed with my grade in biology, it is 87 average with the scores of 80, 87, 87, 88 and 96. While it isn’t “bad” I could have had it much better.. if only I bothered to open the course’s book and read it when I was supposed to.. I guess I shouldn’t be complaining if I have a an average above 85 without putting much effort, but I would have been much happier with a 90.

So anyways all I wanted to say is that programming is going to be on hold for a while. Well, Mimi started implementing the Terrain Level of Detail and he is doing a really great job 🙂 But he too is now busy this weekend – visiting friends he haven’t seen for a very long time. He might be able to work on it at evenings after work but if not it’s ok too.

The goals are pretty much the same, we are getting some nice game design ideas which we won’t reveal until they are a bit more solid and maybe we’ll wait a little longer until we have a small demo. Mimi is working on the terrain as I said and I have an idea for the GUI optimizations that we need but it still needs a few part finishing touches.. Oh, we also need to program it but like I said – I don’t have time for now.

We decided to upgrade our normal mapping into Parallax Occlusion Mapping , I believe this will make our world a lot more detail and will be a good addition. You can read about it here. The rest of the list is the same although I realized there are two effects we wanted to add but never mentioned so here they are: Depth of Field and Motion Blur. I think they are quite useful to get the player to be immersed within the game and feel more as part of the game. They are quite easy to make too so you might seem them sometime soon when we start programming again.

That’s it for now, it might be a while until my next post. Good night! (:

Changes in priorities

•June 30, 2010 • Leave a Comment

Hey, what happened to the skybox?

You see.. it was removed. Why? Because… because what? because:


Hey, what’s that? This is the Atmospheric Scattering  I talked about several posts ago! with the addition of stars and a moon at night time. You see, I woke up that Saturday, the day it was mom’s boyfriend’s birthday and I looked a bit online in that time I was supposed to be getting dressed and ready for the celebration (very much like now, when I am supposed to get dressed and go study for my test tomorrow) and I found a sample on how to implement Atmospheric Scattering and figured “It’s not that hard!”. I left Mimi a message about it and that we implemented it that Saturday. Yay! It is still not done completely, the terrain is not using the code to receive light from the actual sun but it will come.

Now as you can see, our next on the programming list is the Terrain Level of Detail, this means that we want to be able to render large landscapes where you can see far far away without loading screens when going around the world. We feel it is most important before we can start editing the world and therefore it was pushed up. After that we really want to start improving the World Editor and adding more functionalities to it, and we might do so. It is just that we already have most of the code and algorithms for implementing clouds and water that it might only take a day or two to fully finish so we might do those two first.

There is one thing we really need to do and that is Shadows. We have most of the code working but we have encountered a bug and it’s simply holding us back way too much. We hope to get it solved soon but for now we are trying to avoid it so we don’t delay everything else when failing to fix this. It will be done, we’ll look into it sometime when we feel it is the time (and that will probably be quite soon).

So this is it for the little update, it was pretty rushed and I might come back and edit it later but right now I really need to get and get ready for8-10 hours of study with the girls. Meiosis, Mitosis, Evolution, Structure of the Cell and pretty much anything else.. here I come! (:

Priorities

Reading the title, it’s actually not so true that priorities were changed. Let’s see what’s take a look at the last list of priorities and then look at the new one:

  • Fix necessary bugs or implement/improve necessary features.
  • Enhance the World Editor, adding more options and improving the interface, as well as making everything easier.
  • Add more objects to be added to the world.
  • Enable changing the Sky Box in the World Editor.
  • Allow adding and manipulating lights in the world.
  • Improve the Scene Manager control of lights, allowing the most out of lights to be rendered and dynamically switching between lights which should be active or inactive.
  • Allow Shadow Mapping to be deferred.
  • Design game concept and mechanics, add game play and AI.

Now for the new list:
Ok it’s a bit more complicated than that.. like our engine we learnt to multi-thread, that means we need to handle at least two tasks at once. So here is one thread:

  • Design gameplay and at the same time do everything written below because designing is thinking and writing and below is programming:
  • Program Gameplay and AI.

And here is the other, let’s call it the programming list:

  • Create Level of Detail terrain allowing for large continues environments.
  • Improve the GUI, fix all the little bugs and allow it to be used and created through scripts.
  • Enhance the World Editor, adding more options and improving the interface, as well as making everything easier.
  • Improve the Scene Manager’s control of lights.
  • Allow manipulating lights in the world.
  • Add more objects to be added to the world.
  • Add clouds. (This one might go up)
  • Add Water rendering. (This one might go up)
  • Fix Cascaded Shadow Mapping.
  • Add Screen Space Ambient Occlusion.
  • Find more stuff to program and/or get more into Gameplay and AI programming.

I must say that the programming list is bit un-prioritized as we might find ourselves fixing shadows, adding clouds and water before improving the GUI or right after, also lights management might come before improving the World Editor but that’s ok. Other than that it seems quite accurate.

I love The Settlers

•June 24, 2010 • 2 Comments

Ever since I was about 7 or 8 years old and saw my brother playing The Settlers II or just looking at the cover I simply felt fascinated.

The pretty artwork and the dynamics of the game with the little Romans looking figures (I just love Romans!), it’s just classic in its true sense – even though it was really new at the time.

This Settlers is one of the game series which inspires me the most.
I admit I didn’t play anything between The Settlers 2 to The Settlers 6 but the memory of that game kept coming back and then one day I found The Settlers 6: Rise of an Empire which I played for hours day after day, finishing the campaign and using the free play option even though the were only about 7 maps.

What I liked about it was the new type of game play introduced, the dynamics of the world and how it felt more real time and unlike The Settlers II, I could actually move around the world, set some buildings and know exactly what is going to happen. The change was in the resource management mainly, in the Settlers II you had constructors and warehouses, when placing a building the constructors had to get resources from the warehouses, gather them at the building and then construct, so if there weren’t any constructors available, you’d wait, also you didn’t know where your resources were going or where they were being used at any time. In The Settlers 6 there were no constructors and only one warehouse, every worker built his own house so buildings were built pretty quickly. Also the resource management easier to control and more dynamic in my opinion.

I introduced The Settlers 6 to Mimi and he tried a little bit and liked it, then came the news of The Settlers 7 which we bought on the first the game got out. Mimi came back home with two boxes of The Settlers 7: Path to a Kingdom, showed them to me over webcam (this sentenced ruined the fantasy I created here a little bit I admit!) and sent me one of them in the mail. Now we are both in love with the game.

The most memorable was when we just started the game and heard the opening theme “Hero Within” by Kariina Gretere (music video below) while flying by to the castle, seeing all the environment and little people running about.

The gameplay was a bit more like The Settlers 2, which was a bit of a surprise perhaps. But it was a much improved and easier to control, it also had a lot more features which weren’t in version 2 and 6, such as the technology research and trading window. The army management is also dynamic and resembles The Settlers 6 although also improved. Overall it seems to have managed to combine both the dynamics of The Settlers 6 with the strategic resources system of The Settlers 2 and added a lot of other features at the same time to make the game even more dynamic and interesting, with many more things to do and watch over for – which isn’t a bad thing considering that resources flow is usually quite stable (at least once you know what you’re doing.. which for me is pretty much never).

I especially recommend playing this on Multiplayer as it feels like playing one of those old family board games but improved, new (digital new?) and dynamic, with cute little buildings and people, a sense of calm yet immersed with competition which gets more tense near the end-game, even if you don’t like this style of game but you have a friend to play with, I think this game is worth a try. The only really bad thing about it has to be the cover artwork.

I will finish this post with the recommendation to try the game (and if not then at least listen to the opening theme via the link above) and go play the game myself until Mimi comes back home from work. Bye bye (:

Lua Scripting, World Editor, Scrollbars and Normals!

•June 24, 2010 • Leave a Comment

My my! and I thought I won’t be updating more than once a week. Lucky I was wrong.

So what have we done this time? Nothing bad, honest. But a lot of treats and tricks for a funny Halloween that’s for sure! Not that I have Halloween in Israel.. (What’s the use then?)

Here we go:

  • GUI Improved! Added ScrollBars and Multi-ListBoxes.
  • Loading the list of entities from file.
  • World Editor using the above features to be able and select entities and paint them into the world.
  • Normal Mapping improved! Bumps are just a little bit more bumpy now. Might still need to review the algorithm a bit though.
  • Added Directional Light.
  • And most important: Lua Scripting.
  • Some other misc bugfixes and additions that won’t come to my mind (not important enough to tell?)

I am so happy with the progress our engine is having, not only that things are being added (or fixed) on a day-to-day basis with only two programmers, one having a full time job and the other being in University and having 2 exams coming (eek!), but it also got to the stage where we can finally work on gameplay! Which is probably the most important stage in game development.

What’s so special about scripting?

Scripting allows us to do quite a lot of things and make our life easier in many ways, it enables us to change code without re-compiling the program, a process which can take a few minutes and makes bugfixing or adding small features just a lot more frustrating than they should be. Actually, you can edit code without even having to restart the program!

How does it work?
Well, Scripts are loaded on the fly from files which hold Lua code. The files are translated into C++ and get executed. That way if I edit and save a script file it will be re-run the next frame and the world will see the difference.

What is it used for?
Almost anything! We hope to expose as much of our engine as possible to enable people mod the game as much as possible. Most of the gameplay logic is going to be scripted. Only things which have to be hardcoded will be so, that means things which will slow the game down too much if it’s on scripts (because they are read every time again) and things which can’t be or shouldn’t be exposed because it will do more harm than good.

So here are for example the things we are working on right now using scripts:

  • Setting the properties of entities, items and characters. That means their models, Stats (such as hit points) and other relevant stuff. Allowing for custom items, characters, objects and maybe even skills and stats.
  • Controlling game logic, what happens when a character casts a spell, attacks and jumps. This allows for custom spells, attacks and abilities. Maybe even a whole new game.
  • AI – All NPCs are going to have their behaviors scripted, allowing anyone to create their own map with completely scripted dialogs, cut-scenes and events.
  • Skinned Interface. Create your own windows and buttons from scripts, set what they look, what they do and load them.
  • Scripted environments settings. What’s your world going to look and sound like?

These are just the few things coming to my head. Quite obvious almost all of them are gameplay related, might be because this is what’s finally on my mind.

Things I forgot

In one of the previous posts I listed the current features our engine has. I realized I forgot to mention some important things and I wanted to dedicate some space to it. Unfortunately it seems that I forgot all of which I wanted to mention except for the one I been working with quite recently, adding its functionalities to the scripts. This is the Sound Manager system. What’s a game without sound after all?
So yes, our engine is capable of loading sounds and playing them in many different ways. We still need to add 3D sound but it is quite easy and will be done when the time comes.

Edit: Oh hey! I just remembered another one. We have networking TCP/IP working 🙂 We also have UDP working but not very optimized. We can play online, yay! 🙂 Oh and P.S. The cake is ready (what cake?)

The near future

So here are our plans for the near future:

  • Fix necessary bugs or implement/improve necessary features.
  • Enhance the World Editor, adding more options and improving the interface, as well as making everything easier.
  • Add more objects to be added to the world.
  • Enable changing the Sky Box in the World Editor.
  • Allow adding and manipulating lights in the world.
  • Improve the Scene Manager control of lights, allowing the most out of lights to be rendered and dynamically switching between lights which should be active or inactive.
  • Allow Shadow Mapping to be deferred.
  • Design game concept and mechanics, add game play and AI.

That first line there was the last originally but then I figured “Well, it we might just see more and more necessary things to do that when I come back and post here this will be my only update” and decided it needs to be moved up 🙂

This list is full of fun things to do. I am quite happy with it. Except for one thing: Previously I mentioned that I wanted to add Atmospheric Scattering effect to the world, allowing of better dynamics of day/night cycles and beautiful sky. Well, I decided to push it for now – I haven’t gave up on it! It’s most probably going to happen and hopefully it won’t take more than 30 days, but for now Mimi and I decided to step into game play a bit more for the time being and add graphics slowly as we go. That doesn’t mean that there won’t be a time in which we change our priorities and graphics once again will be on the lead.

This is all for now. Mimi is going to wake up in an hour and go to work and I need to make a birthday cake for mom’s boyfriend 🙂 Happy 60!

So what’s new today?

•June 18, 2010 • Leave a Comment

(note: this is marked as both Game Development and Uncategorized because this is not strictly with Game Development content)

So today…

Today I had my final chemistry lesson of the semester, hurray! It was great fun 🙂 I still need to get ready for the test (on 13/7) but I have the Biology test first (1/7!!) which scares me a lot more.
I still need to send last two biology assignments and then I am done! free! Hurray!

What about programming?

Programming! The only thing that appears to be on my mind right now (and finally, I can actually make time for it!).
I’ve started working on a demo so I can finally present some screenshots sometime soon. That means fixing old systems like the very old World Editor which just wasn’t compatible with some of the changes to the engine, as well as adding GUI to control the editing instead of trying to memorize about 20 different keys to change between brushes and objects to place.

So what do I have so far?
Mimi and I finished the most basic interface and panels. We added placeholders button images and started creating the menus with our relatively new GUI system. Today on my free time after class I fixed some of the old World Editor functions to be compatible with the new code and set the buttons to call them. Now finally our terrain is once again editable! Finally 🙂

So what can we do?
We can, and finally very easily thanks to our new GUI system, for starters choose the name for the world/zone, choose its size (that is, how many squares of terrains it holds) and create it! Now for the more exciting part:

  • Edit the Height with a Circular Height Brush (Square will be added soon :)) This includes 4 different ways of editing the height:
  • 1 – Flatten Brush: Simply setting the height of all vertices in radius to a certain value.
  • 2 – Height Brush: Lifting or dropping the height with a sinus function so it doesn’t raise all the radius to the same level but creates a smooth hill or pits
  • 3 – Setting vertices in radius to be a specific height ONLY if they are higher or lower (you choose which!), that way you can easily create nice roads or tunnels without ruining the rest of the environment.
  • 4 – Blur Brush: helps to smooth the terrain a bit by using blur function on the vertices.
  • 5 – Texture Brush: We can blend up to 5 textures in our terrain! This can be used to make a very nice looking world together.

Here is an example made in one minute with the Height Brush, Fill Brush and Texture Brush alone:

So what are the next few things to do? Well, you might have noticed that there is a blank box with a number on it, in this case saying 2. Well, that’s actually a drop box. The number 2 is the current texture to blend. That means that we really need finish the drop box for starters and then we need to change the drop box to show texture images of choice instead of numbers. That sounds like a great start!

What else? Tools for editing the brushes radius and strength and setting the fill brush to lower or elevate. Also a way to change the 5 texture for every sub-grid of terrain so you can have a lot more of variety when painting the terrain. That way you can have one sub-terrain in the same zone/world be of partially or even completely different 5 textures from its neighbor patch.

And of course what’s a world with nothing in it? Right after I finish the little list above I am going to start working on the world data base, loading objects definitions from files and placing them in the world.

Beyond World Editing:

Have you noticed the sky is all black? Well, it feels really cold to me. One of the next of the things on the list is to either re-enable the already implemented skybox/skysphere functionalities and fill it with a pretty texture or create a whole Atmospheric Scattering system as shown in here:

http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.html

This will also help with easy day/night cycles.

There is also a problem with the Cascaded Shadow Maps which we (Mimi is the math genius) need to fix, this is why there are no shadows in this photo.

That’s about it for today! The update was a little rushed, I wanted to at least have a screenshot uploaded this week and decided I will make this demo (which means I had to make all the interface for it finally!) really quick before going back to biology homework.

Nevertheless I hope you enjoyed this update. I will try to get a bit more done in a few days.

Have fun web surfing! 🙂

Introducing MLE!

•June 15, 2010 • Leave a Comment

Game Development is fun!

What’s more fun than seeing your program growing every day a little bit more and becoming something much more than it was just a while ago?

So what are we going to talk about in this category?

  • Updates about the development of MLE and the Unnamed (no really, it doesn’t have a name yet) game project.
  • Graphics programming, with a bit of shaders logic 🙂
  • Ideas for MLE and the game (comments and suggestions will be very appreciated!)
  • General Programming related stuff (most likely in relation to games)

I am hoping to be update this category at least once a week with something new and cool to show off from the development of MLE, so wish me luck!

With this post I will start this post with a little bit on MLE (the game engine) itself and in the end I will touch little bit on the game design and game-play aspects if I am still awake enough.

So what does MLE have so far?

  • Terrain Rendering
  • Terrain and World Editing
  • Models rendering
  • Skinned/Animated models rendering
  • Light Shader
  • Normal Mapping (the new bump mapping)
  • Cascaded Shadow Mapping
  • High Dynamic Range Rendering! Pretty bloom effects
  • Grass Rendering!
  • Particles Systems with pretty effects! Very customizable too
  • Multi-Texturing up to 5 colors! Mainly used for the terrain rendering. That means we can easily paint 5 textures into our terrain! But this is far from all.. Stay tuned
  • GUI! Our very self programmed too. Will allow for skinning and a lot of options and functionalities. Hoping to support all types of button/window types
  • Resource System, well managed class that handles the memory allocation and loading of files.
  • 2D Rendering of text (with the option to load many different fonts including windows fonts) and sprites (animated too! not a surprise, is it?)
  • 3D Text rendered into the 3D world.
  • Multi threading, especially for loading objects into the game while already playing without stopping gameplay!

Wow! that was quite a bit of a list. And I am sure I missed quite a few things too.

But for now let’s look at a short list of what is going to be added in the time to come:

  • Atmospheric Scattering (rendering the day/night sky dynamically with the changing of time and position in the world)
  • Water Rendering
  • Clouds Rendering
  • Improvement for the terrain to support huge landscapes rendering.
  • Motion Blur Shader
  • Decals (These are the textures cluttering the world adding a lot of detail into it, this is also how bullets and blood are rendered into the world after you shot a wall or get hurt)
  • Depth of Field
  • A new and improved world editor.
  • Lua Scripting
  • Displacement Shader (clothing and hair!)
  • Beginning of AI and character controls
  • Gameplay
  • Much more! 🙂

And this is just a short list of what came to my mind at this late hour! There is sure going to be a lot more of new things in MLE. And also a lot of work 🙂

Gameplay related section – finally!

Finally we got here (not that the previous sections are anywhere near finished! but hey).

What is the game going to be like then? Considering MLE is a very flexible engine, I would like to start by saying that pretty much any type of game can be made with it.

But what is our plan? Well, Mimi (my boyfriend) and I love quite a few genres of games including:  role-playing games, action games, real time strategy games and quite a few more which I am too tired to list right now.

Therefore we will be making a game combining aspects from the 3 genres I mentioned above!

Our game will focus on fun action game play with a lot of role playing elements and as for strategy.. we will see .

We are hoping to introduce some new ideas into the gameplay which will make playing this sort of game much more interesting. I am hoping to share some of them soon.

I am sorry I am not going to expand more about the gameplay part of the post, I am very tired and need to wake up early tomorrow. I hoped to at least post a few screenshots but it is better to prepare something more appealing which I didn’t do in advance to starting this blog, but I promise it will come.

So I hope you enjoyed the post, I will try to get some nice screenshots to present by next week’s update, which might be in less than a week if I get the time! Or at least not be delayed, considering the amount of homework and two tests coming soon (Chemistry and Biology sometime take too much time!)

Stay tuned! I will do my best to update by next week, maybe even a bit before that.

Good night 🙂

Edit: Ok! I am not going to bed just yet. Magic the Gathering – Duels of the Planeswalkers just came our on steam and I am going to play a bit with my boyfriend before bed. A thing which I might regret doing right as I wake up tomorrow 🙂

My first blog post!

•June 15, 2010 • Leave a Comment

Hello you! Welcome to my blog 🙂

This is my first blog post!

So what is this about? Let’s start with who I am..

My name is Shanee and I am a 21 year old girl from Israel.
I am a student for a combined degree of Biology and Computers and I am also an amateur games programmer.
I have the most amazing boyfriend in the world! His name is Mirza, but I am going to call him in his more used (and cute) name: Mimi!
Mimi and I are together for almost 2 years now (15th of December) and are also in a long distance relationship, he is currently in the UK (although his home and family are in Bosnia) and as I said before, I am from Israel.
We are working on our game engine together, nicknamed MLE which stands for Mimi Luna Engine (Luna is my nickname :)).
We hope to publish a game made with our engine sometime, and I am hoping to update my blog about it!

But the blog isn’t just about the game!  Let’s see what else (and also expand a bit about game-related stuff) I will be blogging about.
I am also interested in Trans-humanism, that is improving myself as a human, both by lifestyle and technology. I am also into ideas like the Singularity, which I hope that will come true, but I have some fears it won’t.

Naturally, I am also into technology! Computers and Medical Biology advancements and any other generally cool things which I believe that people can love even if they are not into the Singularity or Trans-humanism. I am hoping to have a section of things related to technological advancements.
As a student for Computers and Biology, I might post a bit of the things related to my studies, we will see! 🙂

Until recently, my time was mostly spent gaming. I LOVE gaming. I love Magic the Gathering cards, Dungeons & Dragons. I even played Dungeons & Dragons Online MMORPG!
I had a fair share of MMORPGs I played: Ultima Online, Everquest I, Everquest II, World of Warcraft and even a little bit of Age of Conan.
My first programming experience actually came from programming a private “shard” (server) for Ultima Online! This was a lot of fun and this is probably where my love for creating things started.
Actually, my first programming was customizing my mIRC client, over 10 years ago, creating my own scripts, functions and bots.
So what about my current project? Well! Currently we are working on the engine (MLE), that is, the whole system behind our game.

We are slowly adding more and more abilities to MLE and are enjoying to see it grow and rendering scenes which become much more full and impressive (also pretty!) every week (sometimes every day!).

I will start a section about the progress where I will be showing the graphics slowly improving and the new systems that will be slowly added into the engine and finally the game, so stay tuned and look for Game Development! 🙂

Oh! I will also post some other Game/Engine Development related stuff which I might find interesting or see as something that could benefit others if shared, for example some graphics techniques or other programming techniques and systems (like AI ideas) and designs.
So what else will you find in my blog? I have no idea! Just about anything probably.. or at least anything that might come  to my mind as blog-worthy ^^
I hope you will enjoy my blog  and that I will enjoy writing it and so it will reflect back each other.
Have fun! Stay tuned and feel free to comment 🙂