Codename Valkyrie

Android mmo game engine

Link to page below is here

Comments

No comments

First of all i would like to thank all for all your good words coming from you  in emails and comments , i have not much time do do a full time development on a valkyrie but ill try to do my best to release something playable as soon as possible.

I need to answer one comment from someone calling himself Honda  :

How did you come to that conclusion !!!

First of all this app is only using permission to access internet it can’t manage your contacts calls or anything . I must use internet as it is Networked engine and all action are done with communication to the server .

Secondly you have sources of this application you can see it is doing nothing undesirable (maybe crashing from time to time but…) . App it self is not protected obfuscated or anything !!! so it is possible to decompile it and see it is exactly the same as the source in repository.

So at he end  i can guarantee there are no viruses in this app

From today sources will be slowly available here:  http://code.google.com/p/valkyrie-android/ right now i’ve pushed android apk  but  server is made with sgs project darkstar and when Sun was bought by Oracle they have closed this project . There is fork of that project called RedDwarf  : http://www.reddwarfserver.org so ill be moving to reddwarf but it might take a while  and when it will be moved ill put sources in to repository . Project will be dual licensed Under GPL and A Commercial license (if necessary)

I’m back from long long holidays working hard again. It was great to be away; nonetheless it’s good to be back when work is fruitful.

So, what can you expect this time:

First, but not last, are Mob characters, all 5 of them: Rabbit, Cow, Spider, Orc, Mushy Man.

I hope all of them are running around the map as they are located  - randomly…  and there are only 20 mobs running around so don’t be disappointed, there is a chance that some classes won’t be on map.

Second improvement are 2 context actions to each player on the map (counting in Mobs).  INFO is my no one but for now is irrelevant for you (shame on me! but have to do some test – and you are my best lab rats – promise that in the future I will put something cheeky here!). ATTACK  – it is players no one! It even sounds good, isn’t it? That is actually does? Let me guess… it moves player to Fight mode.  I have spend loads of time thinking about how fighting system should be implemented, and came to a decision that during the fight player and opponent will be transported to a smaller map (8×8 now) on which fight will happen. Player and opponent movements will be restricted only to this map and not visible to anyone else (I know everyone would love to show own fight skills, but this will limit network usage for everyone, shame but nothing can be done, at least not now).  It is still wok in progress and i hope ill finish this functionality soon. So, some details:

On the bottom of the screen is an action bar where are located basic skills like: (A)ttack, (W)alk, (M)agic, (Items).

Future improvement will be customizable action bar – player will be able to add skills he wants there. All actions will have ‘cooldown’ period based on player preferences and skill itself, this will help to overcome laggy network and help synchronization between clients. ‘Cooldown’ period will be shown on the top bar of the fight screen (it might be much smaller later) right now two options are enabled in this window (W)alk and exit. After pressing on W button your player walking range will be shown, than when player click on the screen action will be executed.  In this case player will start to jump around the map (yep, still working on that). ‘Cooldown’ period for walking will be walking itself so after walk will finish you will be execute any other action immediately. Exit just quits this screen and moves player back to map screen.

Next are some new options on preferences screen, most of them are for my own tests, but one might be interesting to be enabled. Visibility range- draws a circle which will show you how far you will be able to see other players. This was introduced to limit network usage that player won’t need to listen to all other players movements and actions.

Further more if you press menu on login screen there is exit option now, so you don’t need to log in to exit anymore ;)

Last but not least, when application will change focus  player will be moved in to different mode on the server and will stop listening for movements on the map – that means no more unnecessary data transfer if you will forget to exit application. (still no automatic logout will do that in the future)…

All of that right in front of you!

One more thing…. I would like to thank for all emails and comments. I promise I will get back to you soon. I know it is rude of me, but believe me.. came back from holis and first thing I see is full mailbox – it gave me huge positive kick to work hard. And let’s say traditional writing is one of my fields of improvement –  please enjoy new release :)

version 0.3

2 comments

Ta Da…..Finally I put on the market version 3 of valkyrie engine!

After releasing version 2 I planned that next version will follow shortly… after all I wanted only to add some functionality to the server. Some of them like saving your character came without any hassle. After two days of work I was convinced that in a matter of hours I will dazzle you with new release full of shiny features… But as they say if If you want to make God laugh, tell him about your plans… so my little bugger was called OutOfMemoryError.

So here is the story!

I have added new characters so people will be able to create new players from different classes: knight, archer, barbarian, ninja and wizard. Everything went sooooo smooth until I put all types of players on one screen together and … guess what…. it crashed…and than crashed again, and again…and again!

I must say I was close to stop further development. If platform can’t handle a few images on the screen at once (limit in android os is now 16MB) how it will handle all I want to put into it in the future?… No point!

I took some time out, weekend away….and I found a solution for my problem as always divide and conquer won competition. If you have to much in memory divide it in to smaller pieces and put them it to the memory when it will be necessary. I did I was thinking: divided my tile sets in to small sprites and ended up with more than 2000 images… and it works! Small images are loaded when they are needed, and disposed when running out of memory, No crashes but… why there have to be always some kind of BUT.

How to transport them to device ?

1 by 1

This option is implemented. Images are downloaded only when they are necessary. This may be very annoying for some people who want everything to be working as soon as they start their app so…

For them I planned other choice: To compress images and send them to your phone. Woooww! Sounds so simple and was so not working :(

I compressed all files and send them to my device and started decompression. Waited… a bit longer… went to do another coffee.. still decompressing.. what the f…k! It took 74 seconds to decompress this file….so I thought: Java sucks !!!

74 seconds to decompress file which I decompress on my pc in milliseconds guys from Google had to do something wrong. But nothing will stop me! Let’s go native, android guys implemented ndk to handle this kind of so called situations. I spent additional 4 days porting minizip which was written in c and I thought it will be milestone solution to all my problems….

65 seconds… this was a result of going native almost 10 seconds! It wasn’t worth a pain I went through to make it work .  Disaster!!!

So I gave up on that matter..need to forget horror I went through…

For now the only solution I found to this problem was to store data not on SD-card which is FAT filesystem, but in data directory which is EXT filesystem (my data dir is also on SD-card). It takes 7 seconds to decompress there.

There will be a package manager: downloading and installing packs will take time. In the future you will have a choice to store data on SD (slow) or in data dir (a bit faster) for now data will be stored to your data directory….

………….may be one day whem memory will be blurred, I will try once again.

What will be in next version?

Now I am working on putting more life in to the game. So expect in near future some NPC – or strange monsters – running in random directions around the map.

Still pre-alpha version , so don’t expect it to work ;) there is still loads work to do .

In this version i have started working on network communication. I set up a server which is listening for clients to connect.First page is login page don’t enter any user name and password it is still not necessary , this is still a test so user name will be random.

Network connection will be Required for version 0.1.x .

I am still leaving version 0.0.16 on download page this version will be working and it is much better for trying maps.

I won’t write a long stories about what is valkyrie or what is a plan for it because i have no idea , it might be a nice game or it might be another project which will die slowly . Right now i have loads of energy and ideas to do this project so it is in constant development . Right now it is 3rd week of development so project is extremely young , i didn’t deploy any a demo to a market , but there are apks available on download page  .

So what have i done up to this moment :

  • Map  - i had to start with something so i downloaded some tiles from reinerstileset.4players.de and started to draw them on  canvas , after  …. some time i had my first map it was very hmm grassy and i could do absolutely nothing  but that’s a nice beginning . After a while i finally managed to add scrolling, so i was able to browse through grassy wilderness .
  • Map editor – Making a map like :  0,0,0,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,10,0,0,0,0,0,…. was very .. unproductive so there was a need for visual map editor .I’ve found this website : http://mapeditor.org and after a while i had my first map created in tiled editor displayed on my G1 . Currently  almost all the features are implemented from tiled , so i can create multiple layers , add tile sets and  add objects . I had to make a small changes in source of editor , and changed version of map editor with sources will be available in Download section .
  • Player – I  have a nice map designed in nice visual editor  and i am able to move it around,  so it is a time to add something that will actually move . I have put loads of work to make something to move on the screen , examples on the web where absolutely terrible  , i was changing almost all the source three times and finally i  managed to do something stable that won’t crash all the time and will be rather simple to extend .
  • Scripting – Creating a game requires simple and flexible environment Java and android were not flexible enough, small changes on the map require recompilation of whole project , and that is a very slow way of development . I have created an interface which is written in Java  (some parts might be written in c in the future if Java will be to slow )  and exposed to scripting language . I have decided to use beanshell it is lightweight and flexible . Now i  can write some  script actions  in map file and then they will be executed on android.
  • Networking – Right now game is using network only to download images and maps from the Internet they are cached on sd or in data directory on your device so first run of the application downloads all images from my server so it might take a while ad it is better to start it for the first time on wi-fi . After that images are cached and taken from cache.

Some screen shots and videos: