Wednesday, 19 May 2010
Tuesday, 18 May 2010
Map Generation Mk. 2
So I've started programming things again, this time using SFML instead of SDL. It does so much for me it kind of feels like cheating but meh, it's a nice environment to work in and helps me get stuff done quickly.
My original plan was to move on and make some prototype games in different genres, starting with a scrolling shooter and making full use of procedurally generated content. However, I've gotten distracted generating maps again and I've started playing with different techniques to those used in OpenQuest. The map generation stuff in OQ, while functional, was actually pretty poor.
I've started looking at some simple fractal height map stuff and come up with a program (based on this http://properundead.com/2009/03/cave-generator.html ) that creates some nice looking maps. Could do with a lot of tweaking and I'm wondering how the hell I'll get mountains, forest, rivers, etc on there.
Tuesday, 11 May 2010
Weekl- err, Biannual Update
So the whole weekly update thing didn't work out. This was because I was an idiot and didn't have anything new to report until two weeks before my final deadline. By that point updating my blog was the last thing on my mind. The game is now handed in and shall be forgotten and lost to the mists of time. It turned out okay but a lot of stuff had to be dropped due to time and a lot of what's in there is half-baked. There's little variety in all of the dynamic generation stuff and the AI was done really quickly. The player's stats do absolutely nothing (apart from health) and the special death stuff I wanted to do went out of the window. It would have been fairly easy to do, but would have taken a couple of days that I didn't have available to me.
My dissertation is now also finished and handed in so I'm very near the end of my course. Just the one essay left to do.
I'm not sure if this blog will see any more action after today. I might use it to chronicle the development processes of any future projects I undertake, but maybe not; no one reads this blog anyway. My current plans are to make another couple of 2D games in an attempt to learn some better coding practice and make clean, fast, efficient code rather than code that just works. The aim also is to make some entertaining games rather than games that just work, as OpenQuest (that crap name stuck in the end, I couldn't be arsed to think of anything better) turned out to be. And then maybe I'll move into 3D.
Monday, 7 December 2009
Weekly Update
It's prototype hand in day today. Fortunately I just finished the last thing I wanted for the prototype. Huzzah. It only took me 6 hours to do. Progress since last week:
- Working inventory screen. Clicking on an item in the inventory "equips" it if it is an equippable item. By that I mean it moves it to the inventory slot that's away from everything else/position 0 in the inventory array, it doesn't actually affect gameplay yet. However, it shouldn't be very difficult to get the game checking the statistics of the item in array position 0 and setting damage and attack type.
- When an NPC is killed it now drops an item. These dropped items can be picked up if the player walks over them, and then appear in the player's inventory.
- Levelling up now works to a limited degree. Killing an NPC rewards the player with experience points, once the experience reach a threshold level the player's level increases. This currently only increases the player's maximum health and the experience threshold. Again it shouldn't be difficult to get this working as fully intended.
- Simple character sheet working. Shows player's current health/max health, strength, toughness, dexterity and experience points/xp threshold. Doesn't need to do much more for now, will probably end up showing more detailed stats once they exist.
- Very simple quest generation. It currently only generates simple fetch quests. An "outpost" is generated that contains a blue gem type thing, pick up this gem and return it to the port town on the North Island to complete the quest. When the player completes the quest, they are awarded with 200xp and a new quest is generated. The new quest is exactly the same thing, just with the outpost in a different place. The code for this is really bloody sloppy and not working entirely as I'd like behind the scenes, but it's getting the job done. With a bit of cleaning up though, it should be adaptable to further types of quests. The important thing currently though is: IT BLOODY WORKS!
- Interface works. Buttons take you to the correct screens (even if the menu screen and questlog screens are just blank). Nice little windows-esque X button in the corner closes whatever screen you're on. The buttons under the health bar stay highlit to tell you which screen you're on.
- Drew a few nice little graphics for the items and interface. That's all going to need to be reworked to be more efficient though. The item graphics aren't even in a tileset!
- The lovely Mark Robinson supplied me with some overworld music which I implemented right away. It loops really badly (completely my fault) and skips when it first starts but it's there, dammit. Nice little piece of music, reminds me of some music from StarWing. I'm on to you, Lips.
- Drew up my fictional games development company's logo and made a splash screen that shows when the game is started. It fades out crudely after a while, but can be skipped.
- Drew up my fictional games development company's logo and made a splash screen that shows when the game is started. It fades out crudely after a while, but can be skipped.
I think that's about all I got done this week. It looks like a lot but it was actually a slow and pretty lazy week, I've had to stay up pretty late on days I did work to get the necessary work done (hence why I'm posting this at near enough 6am).
For the next week and a bit it's a matter of making things work and look a bit nicer, as I'm to be presenting my game to loads of people at the Game Cultures Christmas show on the 15th. That should be trouser browningly terrifying. First up for a polish: Quest generation. It's currently a complete mess backstage, and not particularly impressive or even apparent for anyone playing the game.
That's all from me this week. I can't be arsed to post any screenshots right now, it's 6am and I'm knackered, but I'll get some up during the week if I remember.
Monday, 30 November 2009
Weekly update
Another weekly update, sort of on time. Progress:
- Semi-written the class for my NPCs, to the point where they will spawn in towns with some basic properties such as health. They currently have no AI though, and probably won't do for a while. The concept of coding AI currently terrifies me.
- The groundwork for the RPG side of things has been coded into my Player class. HP, XP, etc, etc. Leading on to...
- The beginning of combat. The player now has the ability to attack, and attacking an NPC knocks the NPC back and does damage based on the player's STR (strength) statistic. Should an NPC's health fall below 0, it will "die". If an NPC is dead, they're no longer shown on screen and the player can no longer interact with them. The instance of the NPC class remains, however, until the town is left. Also, walking in to an NPC hurts the player, knocking them back and lowering their health, which can be seen on the...
- ...Health bar! I've begun coding and drawing up a simple GUI. So far I've got nicer looking buttons for the boat travel menu and some placeholder buttons that will eventually let the player open the character sheet, inventory, quest log and game menu (all of which I need to draw up placeholder screens for and get working). I also have a working health bar that fills up depending on what percentage of health the player currently has, which looks quite pretty and is the first example of something working straight away exactly as I planned it. Of course, all this is subject to lots of change, but everything so far looks nice enough for a prototype.I've also changed up some colours in the still flat colour tileset to make things a little easier on the eye, and have been researching how to do draw good tiles and tilesets. I'm getting quite into it. Plan for this week:
- Get Inventory screen drawn up and Inventory system working, with items generated when NPCs are killed.
- Expand the RPG stuff, with the player gaining experience points when an NPC is killed and then levelling up when enough points have been acquired (standard RPG stuff)
- Once that's done, I can move on to the stuff I really want to get right: Quest generation. This is the big one, and the way I'm planning it will involve me moving a lot of code around to get it working as ultimately intended rather than as prototype code. I'm going to have to code the quest generation system itself, get friendly NPCs going, get some more map generation stuff going and get the player dying properly.
I also have a fair amount of bugginess and undesirable behaviour to code out, mainly surrounding controls. Should make for a fun week.
Wednesday, 25 November 2009
Weekly Update
So everything that was working last time is still working and everything that was broken by my OOP game loop has been fixed. On top of that, I've made some decent progress over the last week:
- Towns can now be entered and left, and have a randomly generated layout. Currently the towns just have a bunch of grey tiles in them so I could see if they were generating differently or not, but eventually they will have houses and roads and people.
- Port Towns now exist. One per island, on the coast. They're pretty much same as towns except they have a coastline and a "boat" (a big brown rectangle) in the town.
- Island to Island travel is now possible. Walking into a boat in a port town opens up a travel menu and allows you to warp to another island. In the future, there'll be a snazzy little boat travel animation. Probably.
- Plenty of general bug fixes and crash preventions.
Next on my list is combat and NPCs. I'd like to get more map generation stuff going but it's currently more important that I get some proper gameplay in there rather than a more complex map. And now, some screenies:
My placeholder title screen with working
new game button.
An island. Green = Field, Light grey = Mountain,
Yellow = Town, Orange = Port Town. The black square
with the dot in is the current player character...
Inside a port town. Boat!
The travel menu. Also has a "Go to North Island" option
when you're not already on the North Island. Similarly
if you're on the SE or SW Islands, their options won't
be available.
Another island that I just travelled to.
That's about it for now. If I can keep myself from spending all my time playing Torchlight this week, I should make some decent progress.
Monday, 16 November 2009
Weekly update my arse.
It's been almost a month. This project (along with my Borderlands addiction) is slowly turning me nocturnal. 5am is my usual bedtime these days, more often that not after two or three hours of tearing my hair out over stupid nonsensical programming issues. Even with the silly bedtime increasing the number of hours available to me in which to work, I'm falling further and further behind. Anyway, general progress report:
- Map generator now generates three islands that don't overlap or run off the edge of the allotted space for the entire map.
- Mersenne Twister random number generator implemented. The in-built C++ random number generator isn't random enough.
- Moveable, animating player character implemented (well, it's just a flashing box at the moment). Collides with walls and everything.
- Placeholder title screen with working "New game" button.
- Object orientated state machine/game loop going. While it's a good solution to a game loops, the added programming complexity is the source of my current problems.
- Character art is coming along, which is nice.
Next on my to-do list is get everything working again. Implementing the OOP game loop has broken most of the stuff I'd coded before so it all needs to be reworked. It's getting done though, if slowly. Once that's all done getting everything else working in it should be a fairly straightforward process, as straightforward a process programming a dynamically generating quest system can be.
And so I retire to bed. I wonder if I can wake up before 2pm today. It would be nice.
Subscribe to:
Posts (Atom)







