This was a simple concept that i did in Photoshop - It was supposed to be a retro and modern take on the classic forum, going for a light, small color shceme.
I ended up programming it into a fully working forum (Thats what you can see above)
Sourcecode will be given if you request.
So - To loosen the stress of actually doing the project, because lets face it, most projects you undertake, no matter what they are, can be so fun, but sometimes even a little bit stressfull.
So to keep at proper “routine” as it is, because fucking hell, i’m useless at deadlines :p - I’m going to do it as weekly updates, no matter how big or small, the updates will be posted here on a weekly basis.
So this weeks update:
All i have to say is, we have the working base terrain engine (Screenshot was posted a few days ago), in a language i’m new to - Even thats an accomplishment to me.
Next weeks update is primarily going to be populating the map with useful elements.
You will probably notice the game title on the game window. Halfling-Life. At the moment that’s all i can think of, i made a quick list of names breifly a while back, and that was on the list. I’ve used it as a placeholder for the project name, but it’s starting to grow on me. So cliche i know haha.
If you have any ideas for the name, feel free to post!
So this is it, the barebones of the game at the moment haha, basic map generation (Very basic atm!) - And i’ve spent the last hour or so after work implementing map panning, i added this into the web version of the game a few weeks ago, and it is very handy, i personally prefer it more than holding up key on your keyboard. It’s more…. Fluid.
So yeah, i guess the next step now is change the map loading to load from a 3D data structure rather than fixed 2d, ie, one level map.
After that is re addin the perlin noise, and get the map looking sexy again.
The next post will probably be after those are back in, theres no point me posting about how i went about it and the ideas of why behind it as i’ve already written it for the web version of the game.. Just go back a few pages on my blog if you want to read about it.
I’m happy with todays and yesterdays progress, even so far it’s gone well, the map structure is in (To be updated now), and the tile loading is in (A single tile type at the moment though), and map panning. Lovely!
I’m not going to bore you about all the latest troubles i’ve been having with C# and XNA due to my terrible knowledge. So i’ll get onto the good stuffs.
The new game engine is up and running, albiet to the very basic features, and no game-wise features at all.
I’m using XNA to help me out because lets face it, it is going to make my job 100x easier, and theres no point recreating it if somebody already has made it better than me. Spending way more time optimizing and developing features for it.
So far all i have managed to add is.
Engine class, this contains a “message” log sort of thing, along with a few start variables for when the engine needs them, versions, game name things and also a little function which allows me to change the game window size on the fly. Lovely!
Map Class, not much is contained in this, other than a few tester functions letting me try and work out C# fixed arrays. I’m getting the hang of it now. Sort of :).
This will eventually contain the preloader for the map (More info below on this). This will eventually be mainly used for figuring out tiles needs to be currently drawn, and other things in that area.
Tile class, this is called each time the map class wants to create a new tile, it allows to easily create a new instance of a tile, including positioning on the screen, tile information (Type?), and also the position of the image on the main tiles tileset.
Also, spent about 10 minutes putting all the tiles currently made into a single tileset.
I also googled alot of time for support on stopping textures going blurry when being enlarged (As pixel are looks terrible when blurry), in the end i could change sampler type to pointWrap, which instantly fixed my problem.
So yes, maybe i am over complicating things at the moment, especially this being a bad way of going about when learning the language, but it’s all working well. Of course i spent like 30 minutes playing around with the same bit of code just to get it to work, but at least after playing around with it, i know for next time, how to fix that problem again.
I’ve also managed to add perlin noise to the engine, this allows me to create dynamic landscapes in the game again. This was a must for me. Luckily again - Google to the rescue where someone had already created a perlin noise class. Lovely!
I’ve literally just this minute got it working, and drawn it onto a pictureBox (c# not xna), just to test how it works with live results. Success as it all works as expected. It means i get to spend days and days figuring out a great looking algorithm to generate the landscape.
I am also going tos tick with a fixed array rather than a list for the tiles as it makes sense, the map size >will< be fixed for now, so i wouldn’t need the tile array to be bigger than the map size.
And thats about it really, it’s been an exciting “first day” really, i had spent the past few days youtubing my ass off at C# tutorials and reading so many tutorials too but at the end of the day, the best way for me personally to learn a language is just to get stuck in and play around with it all - So today thats what i decided to do…
Earlier on i thought that the progress was really slow on the engine (As to be expected working in a new langauge), but looking back, writing about it all today, it’s gone quite well.. I’m impressed with myself for once :).
Well guys, i need to ask for some help.
I’ve decided to recently learn C# - It’s going quite well, and i’m picking up ways of doing things in the language, finally. I decided to go with C# rather than Java as i feel more comfortable with that language.
Coming from a web development background, i didn’t really use Classes as much as i probably should of, and only recently on my latest few gaming projects including (The main one is the Isometric game that i’m developing).
I get the concept of classes, and why to use them and when to kind of create others, that’s fine - And it’s all coming along really well. What i really struggle with is inheriting from another class.
What i would like from you guys is any tips and hints for someone starting in C# and how to go about the best ways, and examples of inheriting from another class (Best examples would be relating to games?). Or just any tips in general that you think may help.
Thank you guys!
Okay then - I know this is something that you will read and probably thing, how fucking stupid, decide yourself!
But alas here it is.
I’m switching over to Java! That means that the game i am creating will also be ported and rewritten in Java, gaining incredible performance boosts. It’s a win win for everyone i think.
I have toyed with Java before, just little bits and bobs here and there, creating very basic applications, but i can understand the syntax mostly, the only thing that i struggle with is the classes, and “extending” from another object? Of course i researched it before and never understood it really, so i went back to the language i knew better, web languages.
Of course i know i can’t stick with them forever and want to broaden my knowledge of programming even further, so why not?
This is a perfect opportunity to start learning Java and finish creating my new game with it.
I still want it widely available and thus will end up using some sort of Library to help out, Moosader kindly boasts about Libgdx from time to time and i think it will suit what i need it for. So thank you Moo ;).
I’m sure it will take a while for me to get into the swing of programming in Java again, and relearning the Syntax, and ways to do things. But again - I think it’s just a perfect opportunity to do so.
Actually, ignore the question above, lets do this!
I’m going to be porting the barebones of the engine over into Java and begin programming it in that language! Of course we have haters and lovers for Java (Sometimes too many haters?) But it’s a language which i am most comfortable with switching over to, and from what i have saw before, quite powerful when you do it right.
It will be a few days at very least before you will be able to see any basic screenshots of the game again. Of course this does mean scrapping most of it, giving me a chance to rewrite it more efficiently.
I am a bit sad that i won’t be able to have it running in the browser, but isn’t there some way of adding running the application in the browser using Java Applet or something? Anyway, that library i saw something about porting it to Android and HTML5 too, perfect!
So from today, i guess it marks a new mini milestone for me, and i am sharing it with you.
Ps. I babble on too much sometimes and it’s hard to stick with, but at least all this is out of the way and i can start planning some things of what needs doing first, begin creating the game again. I am incredibly excited about all of this, and hopefully after a few weeks of development you will be too!
rapidflowstudios said: haha sorry, I got you mixed up with somebody else that I’m following. He’s making a tile-based side-scroller
Haha that’s fine, was about to say! - At first i was thinking, meh? Game Maker? nawwww - He really never just said that hehe… never really got the hang of it, alright for the right people who it will benefit it, i’m a stubborn bastard who’s stuck in his old ways of coding in Notepad++, it’s basically why i own an OS, just so i can run notepad++ haha oh god!
Little screenshot showing the recent optizations, mainly the cut off points around your screen, again - This will be widened soon, i just needed to see a few things while debugging.
Well after a while of not developing the game at all, i’m finally back onto full throttle ahead progress (sounds cool!).
Anyways - My plan a week ago or so was to get started on the Artificial Intelligence, unfortunatly this kind of hasn’t gone as planned as i thought it would of.
I thought i may as well start doing the core optimizations now - Getting as much optimization out of it as i can at the moment, and also take my time altering the tile picking algorithm to work a bit better in game.
I can happily say that both of these tasks where a great success!
It has taken me a few days to finally figure out, i was getting preeeeetty damn pissed off - Then today it just appeared in my head, the solution. I kinda hate that, but then i guess it puts an edge on programming, plus the fact that my mathematics is completely shite haha.
For the core optimization i basically had to try and figure out how i can reduce the tiles visible on screen as low as i possibly could, all the possibilities i tried where not to my liking, and i would always end up with this cropped part of the map, displayed in isometric format. So a cropped diamond. It looked terrible i have to admit, so i ploughed on to find something that didn’t feel like a slap in the face when you load it up.
It now doesn’t display in that typical “isometric” diamond cropped map, but rather fullscreen kind of, there is a slightoffset at the moment - But that’s for debug purposes of course, after i will set it so it fully fills your screen!
I’m quite happy with the result of all this and now that honestly leave me with nothing left (yet) to begin working on, other than starting the Artificial Intelligence! yaaaay.
Just to brag anyway, i managed to reduce the amount of tiles loaded at any given time from
From: 3461 (Above ground) To: 1127 (Above Ground)
From: 4500 (Below Ground) To: 3780 (Below Ground)
I think thats a big jump anyway - The perfomance is running smooth on my computer, dread to think all those entities being drawn at once on a shitty computer.
Oh well - I have an idea how i can reduce them even further, but that can wait!
So over the next few days you can expect more AI updates rather than usual terrain generation logs.
Over and out!