The Manor (tenative name) progress thread
Hey there, some of you might know I submitted some art for the first part of LPC, and now I am participating in part 2.
I probably won't finish this game in time to enter as I just started learning how to do all this this month, but I will still try to finish this game regardless.
This game will be lovecraft-inspired. The player goes to this big house to investigate or something. Then they start discovering weird books with rituals for summoning the elder gods and stuff and discover the previous owner had already begun the process, so the player must search around for clues, evading monsters who attack your health and sanity, and reading books to gain arcane knowledge for sealing the gate opened in the house.
Main gameplay will be puzzle solving, evading monsters, finding and putting together clues, and a typing game associated with the arcane books.
keeping a blog about it here: http://feralfantom.wordpress.com/
I am writing this game in Python, using pygame. I will probably also use several other libraries for pygame.
So far I have made a player controlable character out of my professor sprite and an enemy using the skeleton sprite which moves randomly.
I have a lot more to figure out as far as collisions and map creations.
Also, if anyone has tips or solutions for problems I am having, I am completely open to advice and criticsm, as I said, I am extremely new to this.
FeralFantom, love the concept.
The first advice would be to have your code published somewhere, either github or bitbucket or/and sourceforge.net. Most of the entrants are using github but that's upto you.
Also if you want to use the progress threads, it's nicer if you have screenshots and such as you can see the other threads which have progress threads.Progress threads can and are used to also talk about problems you may have which people could help you either on IRC, via PM or by collborating on github, bitbucket etc.
Thirdly, would it be puzzle solving platformer or an RPG or puzzle-solving with RPG elements platformer or what could you make it a bit more clear.
Looking forward to your entry.
This will be rpg-stlye as far as moving and interacting with objects by pressing a key
no levels though, and no combat, if you run into an enemy, you lose life/sanity and they disappear, if you run out of one or the other its game over.
puzzles will be things possibly like mazes, hidden series of switches, and putting together clues to figure out what to do next.
The player will also be able to access a 'journal' which has all the clues they have found.
I will work on getting code up and screenshots and stuff
Here is a screenshot, not much to look at right now
Nothing new to report becauseI spent most of the day trying to get this git stuff to work
Speaking of which, I now have the files for this game here:
https://bitbucket.org/FeralFantom/manor/overview
shot.jpg 23.1 Kb [25 download(s)]
So updates
collision detection, kills player and skeleton if they collide, skeletons will change directions if they are going to collide with other skeletons or walls (rocks), and player doesn't move if they will collide with rock
still working on an easy way to make the maps
right now the background (any images that don't need blocking or layering with player and enemies) is just one whole image, and the rock walls are created from a large coordinate list.
I implemented map scrolling by having two surfaces, one which is the actual display screen, which is colored black every game loop cycle, and then a surface which contains the whole map image which is reloaded every cycle, then the players, rocks, and skeletons are drawn on it, and the whole thing is pasted onto the screen with coordinates based on the players coordinates.
This works as far as amking a scrolling map larger than the screen with the player staying in the middle, but it seriously slowed the program down and I'm not sure what to do about that.
Screenshot attached
shot3.jpg 105.5 Kb [43 download(s)]
problem is fixed.
not much functionality has been added, but the sprite classes were significantly restructured as were the drawing methods and collision detection.
First I changed collision detection to masks instead of the default rects. Masks uses the bitmask of each sprite instead of the rect. This defaults to interpreting the sprites image to make a bitmask which means I needed the sprite to have an image variable so I added one and an update to it in the draw functions of the sprites. This caused issues with collisions though because it used every pixel in the sprite, and the sprites should only collide on their bottom half (they are 2 tiles tall). So I made custom black and transparent bitmask images to use. Objects (rocks) have one too so that sprites can't walk into the 'cracks' in between them.
So now I had sprites with image variables, and could set their rect variable to the full image size since they weren't used for collision detection anymore. this means I could use the draw and clear functions of groups. So before this was the process: filling the screen black, drawing the map, drawing each sprite, then drawing the map with all sprites at correct pos.
Now I can skip drawing the map every time, and instead have each group clear, which draws the map only over the place where it last drew the sprites. then each group draws all of its sprites. This fixed the sluggishness, as drawing the large map image every time was too much.
I also removed one skeleton who was being spawned into the rock wall.
Now that the map surface is not redrawn every cycle, I will look into using the surface's scroll function instead of redrawing the screen black and the map surface in its new position. I could draw both once with that, and just scroll the map surface every cycle.