I finally finished debugging the entire menu for our upcoming title FLASH. It wasn't really technical at all, just composed of moving some lines of code up and down. As I handed off the menu to the rest of my team, I started writing the script for our next trailer. I've just found a couple of lights that we could use to make the trailer with. In my own opinion, lighting is the most important part of a frame. I'm getting pretty technical right now so I'll just stop. Our game is set to release very soon, and my job is to polish off anything that isn't perfect as of now. For the next few days, my job is going to be debugging and continuing to manage the corporate website.
I began working on the physical player's losing scene. It's mostly conceptual as of now, but it should mesh with the cutscene Jace made and the code Alex has done well enough once implemented. I ended up finishing the method for rendering sprite images on the line, but it's still a bit slow, so I continued to refine it by testing different methods of testing the ray's vector against the line of the images position. I also began working on rendering the battery specifically as its ratio to the monster should look natural, which requires adjustment before it is drawn to the screen. I also spoke with Alex about our plan for the next few days, mainly the making of the trailer and game concepts that need to be finished before we begin quality testing.
Moved over to working on draining the battery and making the battery level visible to the player at all times. I was able to create a separate timer that tracks each second the flashlight is on which drains the battery life as well. The flashlight has a capacity of 90 seconds, which means when the player picks up a battery, it adds 30 seconds, but caps off at 90. With draining while it is on and the enemy tampering with it, the player will be forced to look for batteries to stay alive while looking for the exit. Now that that's done, all that's left is being able to pick up batteries and it will be complete. The game is almost done, but we will not be able to meet the beta build target which is Monday as we are thinking of adding something extra to give better incentive to explore the map. This means that the beta might be pushed back to Wednesday. However, this will be fine as there won't be many bugs to fix anyways.
Thanks to some help from Alex, I was able to move away from the battery functions and work on more diagetic sounds. I have currently created some footsteps that the player will here when the enemy is moving closer to him, as well as the sound the flashlight makes when it is turned on. I will be working on a few more sounds such as the electricity noise heard when the battery drains or lowers completely, and I'm currently brainstorming some ways to create that sound. Alex is helping me come up with more ideas for sound effects and I can't wait to implement them.
Today i heard our Creative Director's audio for the game. Super scary, i really dig it. I hope we are able to present it at some point. Good job Jace! The rest of our game plan is implementing some of the things that we have missing. New trailer coming soon so watch out for that! Our cutscenes are looking super nice Jace is really putting in passion. The flashlight timer seems to be a good amount but of course we will have to playtest it and nerf or buff where needed. The game is releasing soon and it's going to be really exciting.
I finished creating the rest of the menu. I was focused on trying to make the highlight system work, then when that was finished I moved on to making all the buttons and screens that Alex needed me to do. At the same time, I asked for Jace's help with creating images for the main menu that would be used for the interface that is presented to the player before the game starts. We also are planning to add some functions, but I don't think that we're going to reveal what it does. As of now I'm continuing to work on debugging the menu. The only issues that could be found are the one page's highlighting system not working for all of the buttons. They continued to work fine, but wouldn't display correctly; and maybe some lag issues.
I finally got the sprite image to follow the player consistently using an equation for a circle and a line. It renders relatively poorly as getting a percentage of the line requires even further calculation, but the main difficult part is done. It makes the game a bit slower, so I spent a bit of time improving the equation, which made it run a bit faster. I also talked with Alex about how batteries would work. My next plan is to get the image to render properly and begin working on more important parts of the game.
Pretty much have most the enemy development done. All that's really left are the extra things like sound effects, but for the most part, it is set up for that. I finished up the scare move option for the enemy, which consists of three different events that utilize the hiding mechanic that I developed as well as the flashlight. Some are audio based while others are more visual. For example, I made a 'shadow' version of the enemy randomly appear near the player. The player must flash their light on it or else it will not go well for the player. Another will create a fog which will have the player hide for a certain amount of time in order for it to disappear. I heard from Glenn that he possibly fixed the sprite issue, so if that goes through then the moving option I first worked on will work better. Happy with my progress so far. I would like to release some teasers for this, but I would like for our fans to experience it firsthand to surprise them. I plan on showcasing the flashlight and picking up batteries soon when that is complete. Also a gameplay trailer next week!
I spent all night late last night creating buttons for the menus and I am very happy with the end result. It was a grind but it was definitely worth every hour. I still have one more button to create, so I'll be working on that tonight. The only thing I really have to focus on is the inclusion of music into menu and game. It's still pretty hard to get the music to be as small as I'd like without sacrificing the audio quality too much, and creating a perfectly looped audio track is definitely something that is bugging me, but its definitely all coming out quite nicely.
The gameplay is turning out pretty cool, I tested it out on my own machine and it runs pretty smoothly. Today I worked on getting the map to generate with a better ratio of batteries. It kept bugging out and generating way more than i needed. It took me a while, debugging really does take up a lot of my time. Anyway the batteries sort of work now but still need some tweaking. Afterwards i'm gonna have to pass it off to the rest of my team so they can implement the actual picking up of the batteries and adding them to the player. I actually need to get caught up on how thats gonna work. Overall my progress has been slow but it's slowly coming together.
I continued to work on the main menu. I've found a method that would allow me to put every option button into a class which allows me to make an instance of each option. I'm currently experiencing the wonder of programming that people would always tell me about: debugging. Man does it take up 99% of your time and all that time flies by so fast. I should probably start doing this if I want to pass time. I've been working mostly between the times of 12 am and 6 am. I do it because I don't want to be interrupted by people online since they usually stay awake during the day. With this entire quarantine, my entire day has been flipped around on its head.
I was pretty busy today, and I likely will be tomorrow as well due to a project for another class. I edited some of the in-code documentation and variable names so the function they serve is clearer to the other members of the team. I also began working on getting Jace's cut-scene working in the game. I didn't do much to actually code the cut-scene in-game, however I mostly just went over how to size the images in appropriate ratios, so the scene can be overlayed on the screen and still look good to the player. Finally, I began changing part of my method of rendering interact-able images in the game, as I may have been using a sub-optimal method of making the image face the player.
Today I continued working on the enemy AI. I continued on to the move where the enemy would randomly tamper with the player's flashlight, resulting in some battery life loss. This one was not too hard, as it just involves subtracting a value and playing a sound effect. For the last type a move I wanted it to focus on the utilization of the hiding mechanic that I developed. I decided to add a scare move where the player would get spooked by a noise, or something visual as well. This is the best way to use hiding, as closing your eyes would naturally get the thing to disappear if it were a hallucination. Anyways, that's mainly what I'll be working on tomorrow as well, so it will be interesting to see it play out.
Finally I have finished the cutscene, took a few tries but its all done now. It took me a few hours to completely redo it fron scratch, and exporting it properly took ages, but thankfully its all done and now I have time to do more coding. I've implemented a few sounds into the program already, and I'm finding a way to play the chase music when the enemy is in proximity, as well as the menu theme. I'm looking forward to when the mechanics for losing the game and the jumpscare scene are implemented, so I can implement the game over and scary sounds into the game as well.
Another day of mostly menial work I actually didn't get much accomplished today and it doesn't feel great. Today was sorta a slog to get through, I continued working on some of the map generation and then switched over to some A.I work. I just sort of felt inefficient all day, hoping for a better tomorrow. On a better note though I did get the map bug to fix after a little bit of tweaking. Most of my work, like Danny, gets done during the night hours. Its not the best with a job on the side paired with having to get up early. Anyway, continuing working on the A.I, our game is looking super nice and its coming along super smoothly.
I continued to work on the menu for our upcoming title, FLASH. Since I started to work on the menu, I noticed that the code looked a little weird. It didn't look bad, it just didn't look optimized. I was considering on rewriting the entire code so that it would also incorporate O.O.P. As the code was handed off to me I noticed that there wasn't any comments too, so I'll have to add that in so my group members could understand what I was going to try to do within the menu. Not much has changed, I'll still continue to work on the menu for now.
I tested out a way to produce an image that is always facing the player, and I seem to have made progress, however I'm still running into issues. The math involved is relatively complicated, so making adjustments and understanding the nature of the bugs is more complicated than the usual parts of the game I code. I'm thinking it may be easier to adjust my rudimentary system, but my attempts to make it look more natural fail to work out, so I think the other method will have to be used in the final game. I also continued discussing with Alex how parts of the game would work, this time primarily how the game should be timed and how the battery system for the flashlight would work.
I mainly continued with the enemy AI today. I tested out how it would appear to the player if the enemy's sprite abruptly rendered in front of the player. It doesn't actually look too bad, and sometimes startled me a little. I believe it is going to be something that one would not expect which is a good thing. However, I am going to have to rework how it is coded right now as it could remove walls which is something that needs to be fixed.
Today I got tired of working on that cut-scene and decided to take a little time to work on the sound design of the game. I'm starting to work on the mixer module and getting it's functionality working in the working build of our game, so that the noises that play when you pick up items or get killed by the antagonist end up playing exactly when I need them to. I also created the song that will play when the credits roll, and will be focusing on the compression of such a long track. Currently its a few megabytes large, and I'm really hoping to get it under a hundred kilobytes. Thankfully, I paid a few hundred dollars on audio software, so it'll be light work.
I spent most of today working on a bugfix for the map generation. It kept adding an extra wall on the end of the map which would take up unnecessary resources. It took a little bit but it should be okay for the time being. My other job is a essential business so we have to stay open, working full shifts is pretty draining. The rest of my time was spent continuing the work for the batteries spawning on map generation. Not many exciting things happened today.
I continued to work on the main menu for our upcoming title: Flash. The main occurring problem was that we needed to have the buttons in the main menu highlight when hovering your mouse over it, but it would only work when the mouse kept moving. I've gotten a fix for that, and now I have to deal with the rest of the menu. Such things that I need to do are settings. Glenn had pointed out that he could change how the game would play if we changed certain attributes of the game such as health, timer, and speed. My job is to make a menu that would change the difficulty so that it may be suitable for a wider audience
Over the weekend, I worked on the flashlight animation and syncing up the flashlight's actual on state with its on animation. I also made an incredibly rudimentary version of sprite rendering, that departs from the usual way assets are rendered in our game's engine. It works well enough, but I'd like to make it a little more effective at providing a tense atmosphere with working assets. Making one picture follow the player's orientation is surprisingly tough and requires some mathematical calculation, so I continued working on that. This portion is likely the second most difficult and requires some deep thought and consideration. I also finished the UML and added a class that wasn't there originally. Finally, Alex and I continued talking about the scope of the game and next steps to complete.
Great work from Glenn over the weekend! He was able to get sprites rendered in the game, which will allow us to move into the next stage of development. I began reworking the enemy AI by researching how other horror games work. I was able to get some inspiration, so I took some notes on how I should approach this. The enemy's actions will depend on random numbers that affect the monster's movement every certain period of time. This way it will be easy to change it to make it easier or harder based on the difficulty. I don't want to reveal too much, but it will have the player second-guessing many of their movements with this AI!
I switched over to map development and am working on the map being able to spawn a set amount of batteries depending on the difficulty. Its annoyed me to be able to only spawn one battery spaced out depending on the size of the map. Its going to have to be a loop sort of thing to get it to work. I'm very excited to see the game coming along super smoothly. Our assets were able to imported into the game. Its looking very eerie and hopefully it turns out as scary as it could be in my head. Also having to determine a good ratio of batteries to map size is up next on the chopping block.
I'm still keeping on that cutscene grind, I made a few animations for it that Glenn requested but it's still not at the standard of quality that I keep myself checked with. I also started working on a battery system which will ultimately contribute to the lose conditions of the game. I'm using the pygame time functionality to create a timer which allows the flashlight usage to be maintained through the collection of batteries. Alongside this, I've also been working on the visual UI for the battery, to show the player how much battery they have left in their flashlight. Everything is still going well and I am so excited to add my contributions to the main build of the game!
I finished any major changes for the website to be uploaded yesterday and my first task being out of web development was to develop the main menu for our game Flash. Issues that Alex wanted me to fix was to make the buttons change to a different image while the cursor was placed over it. In this case it was the highlighted version of the button. The current build of the main menu had a problem where it would only change images if the cursor was hovered over it and moving. That meant if the mouse was still and hovered over the button, it would change back to the original image. Other than that, I'm hoping to improve on the interface in general, as it looks quite plain right now.
Another slow day. I continued working on the UML, I'm trying to see if I can make it even better using different software, but the current version should work well enough. I continued working on debugging. I haven't made much progress with the flashlight, but with the image rendering I fixed some issues, but some new ones came up, so I have to continue working on them.
Today I finalized the project scope document so it will be ready to be given the our sponsor on Monday. Before that however, I am awaiting my team member's approval before submission. I also started implementing Alejandro's work on random map generation into the updated build which will be complete by Monday to be ready for the next phase of development. Good job on that by that way, it looks to be very easy to implement so it will save all of us some trouble. Anyways, not too much going on development wise today other than polishing sprites and the flashlight mechanic.
I finally finished the cutscene cinematic! It was extremely hard to do considering the fact that I couldn't really use the movie module within pygame as it relies on another module. Despite this I finished it. But then again I have to redo a few parts as we have creative differences over the way the animation looks and how it translates into gameplay. Tommorrow I will most likely be working on a loop which allows the animation to run smoothly at a constant frame rate regardless of the fps of the gameplay. I will be implementing the mixer module into it, allowing us to listen to the sounds of the character within the game screaming!
Today I fixed a bug inside a file that I had that was causing our game to not correctly create maps and would crash on map generation. Our website was finished up and added onto a couple details, good job Danny! I'm having a little bit of trouble staying focused for long periods of time working at home. I got to continuing on my A.I development and searching for a more effective method. Alex took my map generation method and implemented it into the current build of the game. Team is mostly working on the flashlight mechanic. A lot of the game is coming together and its looking really nice, overall adding the main enemy and having it search for the player seems to be my main focus.
I recently made major updates to the corporate website that took a lot of time and effort. I updated the home page so that the logo would be animated, along with some images on the game page. I also implemented a store page with some cool and/or dope apparel. I also added a section in our FAQ that detailed on each team member and their place within the team. On the same page I've also added a suggestions/tickets form for anybody that had any inquiries. The only other minor thing that I added was Alex's build that incorporated the hide function, along with our new textures being implemented. Finally, I've updated the entire site with a new design for every section of the site. Personally, I think it looks very visually appealing and it's probably the best I've ever done on something like this. As of now I'll be finished with any major web designs and will begin working on assisting the programmers.
Today I wasn't as productive as I would have liked, I had another project to complete, so I didn't have as much time to work on it. I updated the UML according to a few new attributes I added in the file, and also according to a few new specifications I received for the format. I continued working on debugging the sprite rendering issue, but I didn't make much progress. I'm running into a similar issue I had with texture rendering so hopefully I can resolve it in the same way. I also began working on making the flashlight circular. I ran into a bug on that front too so I didn't much progress there either. Hopefully tomorrow can be more productive.
I integrated the mechanic I have been working on the past couple of days into the most recent build of the game. There is a new video showcasing this now up on the website in the media section. As we finalize this version of the game, I began planning ahead for the coming week. Next week will be very important in which the team will have to work together to complete the beta build of the game. As soon as we are able to get sprites rendered in game, the next phase will begin. Also, great job on the website Danny! It turned out really well which is important for us and our fans.
This morning I've started work on the animated cutscenes before and after the game starts. I've started researching how to implement that into our game, so the solution I've come up with is creating an mpeg format video using adobe animator. I'm pretty new to the world of animation so I've been taking a bunch of time to really understand how to create an animation through tutorials, and through trial and error. Once I finish the cutscene I'll be sure to post a preview in our media section on the website!
Today I worked a full shift at my second job so that ate a lot of my time up. Most of my time was spent on bug fixing some prior code that had an error that I hadn't noticed. Ran into my couple blocks during my daily hour of work , overall I didn't have a great time coding today. I felt discouraged because nothing I had got was working but after a while of debugging I figured out the source and got one of the bugs fixed. I ended the session with one bug remaining and left it for tomorrow. After working for a while I moved on to testing some A.I stuff and finished my day by recreating a basic A.I algorithm on Pygame.
I wrote the press release document for journalists this morning. It contained all the information that was needed for anyone that wanted to write an article for our game FLASH. I've included the document in the press release folder so that anyone that needed it could download it along with all the other assets required for writing such an article. For the rest of the day I'm going to be working on the site. I'm probably going to spend the entire day working on it as my team members had set the deadline for the entire website for tomorrow. I don't think there's a lot to do, so the main focus is optimizing the entire site while looking for things to add.
Today was pretty productive, I started by working on the UML, and catching it up to the point our classes file is at. Alejandro made the Google Drive much neater, so I tried to do the same in my own digital work space. Organizing into folders required use of the OS module, so I read up on that a bit and began formatting our work so it's neat and readable. I tried to implement a circular section of the screen for the flashlight in the game, but when I tried to look up Pygame docs, the site was not available so I couldn't work much further in that part of the project. I had a conference with Alex where we discussed next steps for the coding in the game and how to delegate tasks for the other group member. I started working on rendering sprites in the game, but I ran into some issues when the player began looking at the sprite. I started debugging this but couldn't finish. My immediate next plan is to work on the flashlight mechanic and fix debugging the sprite issue, but I require Pygame's documentation for further progress.
Good news, I was able to finish the hiding mechanic today! At first, I didn't think I was going to be able to, but with the help of Glenn fixing a small problem it finally worked. Unfortunately, I will not have the video up today as I want to add some finishing touches showcasing some of our textures too. Rest assured, it will be up tomorrow for sure! Anyways, now that that's all done, I had a meeting with Glenn to discuss sprite implementation. It's going to take a little more time to do that, but hopefully no annoying problems like before. We plan to have this new build render each kind of texture, whether it's a wall, an enemy, or an item.
I created a few new sprites for the game, mainly the buttons for the menus within the game, and a variation of the antagonist sprite that lurks in the shadows... More on that when the game is closer to being finished. I also created a sprite we will be using for the walls of the game, a beautiful looping texture that is inspired by the wonderful sprite art of my favorite rpg, Undertale. I will also be implementing some more handmade sounds in the game now, and I personally believe that the sound design in this game will truly be spectacular, as long as I am able to fully compress the sound files into an exact amount of kilobytes needed to keep this game lower in filesize. I haven't posted this week until now, because I wasn't exactly in the best of situations in regards to being able to use my development gear, but now I am finally able to work on this game again! I'll see you all soon.
Today was better than yesterday was. Had a conference with the big boss of the company and got to ask some questions and get some feedback. Today I realized that I had never tackled the problem of the map generator I had created before still needed a couple of tweaks. I went back into the files and changed a bit to make it easier to read and commented it for my team. Today was a deadline day and we got in our required quota in on time, good job everyone! Continuing to work on the A.I and the path-finding aspect to the enemy. Encountered a bit of resistance when debugging and couldn't figure out the source of the problem for a while. A quick scan revealed that i had misspelled something much higher up in my code after a whole lot of googling. That was disappointing. Today was overall pretty good!
I finally got all the pages of the website well-rounded, so now it should look like a proper website. I've compressed the screenshots into the media page. I actually almost completely forgot about our calendar. I just spent the last 30 minutes or so putting all the necessary information into our business calendar using Alex's Gantt Chart that he put up near the beginning of the project. It really helped me with plotting out everything that we need to do on our calendar since it's basically just a guide for a calendar anyways. As of now I'll be working on the website.
I spent most of my time refactoring the code so it's a bit more modular (especially the render function) while also making sure whatever adjustments other members are making will mesh easily and still have the game rendering fast. I also drew a very rudimentary background for the game which kind of removed any scary atmosphere that could've been present before, so hopefully it won't be used in the final version of the game. The most useful thing I did today was implementing the flashlight mechanic. I changed Alex's method of using the flashlight, since the yellow colour we originally had wasn't working too well with our colour theme. Right now the flashlight works by extending the rendering distance for the middle six sixteenths of the screen, making the middle part appear lit up. The only issue now is that it looks very rectangular and not like a regular flashlight, so my next task is to make it more natural.
Today I began work on the mechanic that allows the player to hide from the enemy. We decided to add a 'blinking' function to let the player close their eyes through a key press. Early on, we wanted to have the player hide behind walls, but that proved too complex for our game so we settled on blinking. This way in turn works better as it will 'hide' the player's position from the enemy as well as handicap the player's senses, making the player more tense and sensitive to noises. At first, I though having a black box appear over the screen would work, but I wanted to add a little more realism by animating boxes to vertically 'close' the eyelids. It is going well so far, so it should be done tomorrow. Check back tomorrow for a possible sneak peek!
Didn't get a whole lot done today, to my dismay I got called in to work for a large portion of my day. Working during these times has been a hassle but I'm staying as safe as possible. In other news, I left the A.I project to sit in a folder for a bit while I think of other things, it was a pre-planned sort of thing anyway. With how we've been working I'll pick up the A.I mechanic a later date which should be complete by day 13 according to our company gantt. Otherwise I'm following the gantt a little more harshly and working out sprite implementation to clean up any loose ends. Enemy A.I is likely going to be the biggest challenge that I finish during development, I've had a couple breakthroughs but its been mostly slow on developing and actually wrapping my head around how everything works. Very complicated! Also, amazing hide mechanic Alex!
Me, Glenn and Alex met up together on the first day of our break to begin filming our teaser trailer for the game. It really didn't take that long, the video was going to be around a minute long and it took us just 30 minutes to an hour to do everything including multiple takes and planning. After we were finished I spent the rest of the break editing the video, taking advice from the rest of the team members every once a while and updating it to see what they thought. I'm pretty proud of it, and I felt even more proud when I received praise from multiple people. As of now I'll be working on the website until the 26th, Thursday of this week.
Over the break I helped film the teaser trailer for the game, which I think turned out pretty well, hopefully a trend for the rest of the project. The biggest thing I did was tackling what I'm pretty sure is the hardest part of our game: using custom wall textures in game. I implemented it into the O.O.P file we have now and it actually made the game run much faster than drawing multiple rectangles the screen (the previous way we did wall textures). Unfortunately, I also added shading to the walls which slowed the game's frame rate a bit (I think my method of darkening is just inefficient). I also tested a different ray casting function using a feature of Python, but it had very little effect on the speed of the game, so I think the issue is just how slow constantly drawing textures to the screen is with our current method. The game does run pretty fast despite these setbacks, and is definitely faster now compared to the rectangle method we used before. I also added a feature where camera controls can be with mouse or arrow keys according to the user's preference.
It has been a while, but our team is back to work and ready to update you on our progress! Over the break, the team filmed and produced our recently released teaser trailer for Flash (check that out!). I also worked a little on the project, mainly on the flashlight mechanic and sprite implementation. As of now, I mostly have the flashlight complete, but Glenn and I will look at it again to see if any changes are needed. I was able to make a yellow filter over a portion of the screen while darkening the edges of the screen. It was not too hard, however I will be handing the rest over to Glenn so he can add different modes of brightness affecting render distance. For the sprite implementation, it is actually more complex than I thought, meaning it will take a few more days of work to complete. Overall, development is going well as we are somewhat ahead of schedule.
Back to work! Over the break I've been messing around with making early versions of the search method the main antagonist of the game will be using. The team also got to work on making a short teaser trailer for Flash over the break, very cool! Got a rudimentary version of the seeking out mechanic working in a test workstation, still need to test it in the actual game. Not as efficient as I wanted it to be and still a bit slower than I need but it's moving along. Other than that I've been pushing myself to learn basic artificial intelligence, looking through different methods of getting from point a to point b without it putting too much of a strain on continuously updating itself. I'm a tad down that we cant use the in school computers to test our efficiency anymore so i'm eyeballing it trying to make it as easy but still quick. For the first version of it its decently seamless and easy but I've found a better way of getting the A.I to actually path towards a point. That being said i still need to make it path towards a moving point so hopefully that isn't going to be quite a hassle
I've decided to stay at home and work today, I'm continuing to update the website for this day. I created a new splash page for the game on the homepage that I designed in Photoshop. To me, the website looks a little bit bland so I'm going to join Alejandro today in research. I'm still researching the websites of major game brands, seeing how they organize stuff on the website and the overall art design of the site as well. I'm not sure what to implement next. I'll see what I can do.
Spent most of the day testing the OOP version of the game and refining how fast it can run. Continued trying to test Pygame's brightness function but I don't think I fully understand its design. I made a copy of the OOP version on the school computer and it ran slightly faster than the other version, so I think the adjustments are working. I started implementing a function that changes definition depending on whether the user wants mouse controls or arrow controls, but I'm not sure if it syntactically works with Python. I also began testing on changing the drawing method we use to make the walls appear, and I think it should work with wall images now.
I completed the project scope save for some of the sections that should be completed a little later. I also showcased the complete Gantt to my team members and discussed our plan of action for the next few days of development. I began planning what I should start working on according to the Gantt as well as what the others should be working on as well. Lastly, with the help of Danny and Glenn, I came up with a concept for the teaser trailer we plan on making in the coming days. It went really well and our ideas came together really nicely so I am excited to start filming and producing it. Overall, today was really productive for us.
I'm kinda scared about the Coronavirus stuff happening outside so I'm gonna have to pass on going to school today. We've had a total of 17 confirmed cases in the last few days in the area, so I can't take any chances and risk delaying this game. I've finalized a few of the sprites, making sure that the file sizes are small, yet usable in-game. I have planned and storyboarded a little suprise for tomorrow, so sit tight for that! In any case, I'm almost finished my Creative Director duties and will be on full time programming once I'm able to utilize the assets I've created. Let's all keep hoping for the best of health for our team!
Most of our team opted to work from home for the time being, myself included. Today has been slow as my second job took a lot of my time today. Now writing from the comfort of my home. The feature of having the enemy path towards the player character has shown itself to be much harder than initially thought. Nothing a little grit and passion towards this project won't fix. The weekend is coming up and I am planning on continuing learning and developing a rough version of the search system. Wrapping my head around some advanced concepts for my skill level like AI has been tough. Though once i get it down and working smoothly it's gonna make the game feel much more impressive. Hoping towards a better tomorrow, Danny made some improvements on the site which I like a lot. Good job Danny!
For this day I wanted to focus on trying to make the website a little bit more creative. I was considering on making an animation that would loop over itself for the home splash page. I've been taking some references from sites like Blizzard and Super Meat Boy. The limitations on google sites makes it a little harder for me but I'm gonna try to do what I can. For making the animations I was thinking of making it Adobe Premiere, but it seems like there isn't a lot of visual effects I can apply onto the website assets. I'm not very experience with it, but I'm planning on trying to use Adobe After Effects. Right now I already have the sketch for the design I want to put onto the home page. All I need to do is actually put the plan in motion.
I finally got the OOP version of the proof of concept transitioned and working. I think I found a way to put textures on walls in an aesthetically pleasing way, but I couldn't test the other method of ray-wall intersections I mentioned last post that could make the game run faster. I also need to refactor the way a wall's size is determined from the distance to the wall so it's more useful and less restrictive. I tried using a Pygame function to change brightness of drawn objects (this would make using pre-made textures much easier), but it has literally no effect (even with simple tests in IDLE), and their documentation is limited. Finally, I helped Alejandro with the main enemy's movement, but I think I might be over complicating it, Our main goal is getting a working and re-playable game, I think having the boss move in an over-engineered way is going to be unnecessary. but we need a more complete build before I can definitively say.
Today I made good progress on the project scope. I am nearing completion of the scope, meaning I will be able to move on to development soon. I have also completed the Gantt chart which will aid the team in setting deadlines for different parts of the project to be complete. As for the project scope, I had trouble coming up with possible risks to this project. However, after consulting with my team member Glenn, I was able to figure out our most important risks to this project. Thanks Glenn for the help! Currently, everything is going on schedule which means that I will be finalizing the project scope tomorrow and begin working on the game as well.
I worked on finishing up the soundscape of our game, I tried to make each and every wave of sound as unsettling as possible. I love making music and sound effects, so I found it extremely easy to express the theme in audio formats. I had to compress each of the sounds so that they were under a megabyte, but the sound quality in the software I use is easily customizable, allowing me to lower the filesizes, without affecting how clear the sounds are. I also worked on a bit of the item framework, allowing us to randomly disperse items throughout the map, with the concentration of items being dependent on the size of the map. Let's try and keep this progress up, and I'll let you guys know about any new features. Sit tight!
I worked today in class on finalizing the map randomization. The walls work well and I only had to make a few tweaks to adjust some of the more complicated parts of maps being impossible to complete on very small chances. After showcasing and explaining the method used to our lead developer Glenn, he recommended I make the maps possible to adjust the width and length of each for more maze like environments. After a short time I got that working and the only thing missing is to make it easier to format the width numbers to accurately adjust with the map size. Otherwise, my next feature i'm working on is the ability for the main enemy of the game to be able to pathfind realistically towards the player. Using rays and a secret searching method similar to the human eye i'll hopefully be able to implement a smooth human-like felling of being hunted by something you cant see in the dark.
I spent this next day adding onto the existing website. Mostly aesthetic changes. The blog posts are now written directly onto the site rather than having visitors view a document file with a scrolling function. I've also switched themes to make the overall site look a bit cleaner. All of our pages now have our company background installed as the header. As of now I'm going to be looking for ways to enhance the website so that it may function more smoothly, or look more aesthetically pleasing to the eye. A site is a work of art and I must procure the perfect design from the bottom up. I will achieve greatness and everything afterwards. I'll see you guys tomorrow.
Most of the time today was spent doing an in-class test, so I couldn't code as much as I would have liked to. Whatever time I had left I continued transferring the proof of concept code to my OOP version of the program. I also helped Alejandro with some of his code and give him further instruction on how the map should be formatted. I also found a different way I could ray-cast using a different formula to get a ray-wall intersection. I'm not sure if this is better, but I'm going to have to test it to see if it works more efficiently than my current method. My main goal, asides from testing different ray-casting methods, is to get textures on walls, and have the textures looked at from different angles while looking natural.
I continued working on my project scope. Before that, the team had a quick meeting to ensure that everyone is on the right track. While working on it, I had trouble figuring out our requirements for the project. However, after thinking about it, I was able to determine our requirements. An important requirement of our project is to ensure that the game is re-playable so that our fans can enjoy it for more than just a single play through. I plan to complete most of the scope tomorrow so I will be able to begin programming Flash’s key features.
This time, I stayed away from art development and shifted over to programming. I made a few rendering functions for the rendering of sprites in the right position using a bit of the sprite documentation. PyGame’s engine provides a lot of my work itself, and I learned ways to improve the efficiency of my functions from Danny. Thanks Danny! I made a lot of progress on the rendering of the sprites, so I’m pretty content about how things during this project are going so far. Let’s keep hoping for the best, and sit tight for our next update guys! Peace out.
Didn’t have much time to code as I was doing a test. Finally got the map to work well and be possible to beat each time. Randomly generated maps! I implemented the code that I wrote down yesterday into the company drive. Still need to comment to help my teammates understand the functions behind how it works. Steadily trying to think of new things to implement. Talked to our lead developer today about how we are converting our functions into O.O.P based coding. Tomorrow will work on new features! Looking like tomorrow will be a big step towards continuing the creation of Flash, stay tuned for daily updates.
I've developed a GitHub website in hopes of making a better-looking website, but it seems that I didn't hear that you couldn't do that type of thing. I've successfully transferred to google sites as of now, and I am currently working on finding a way to let the other members to post their own journal entries without them having to forward it to me first. I’ve done this through a super secret method that no one must ever find out about. Now that I can stop worrying about collecting other group members’ files. Glad that is off of my schedule!
I spent most of the day translating the code in the proof of concept into another file that tries to approach the game using OOP principles, and is less rigid in terms of run-time parameters. As of now I have a few classes established for a regular character (probably going to be mostly inherited from rather than used directly), a player character, a camera (probably only for the player) and rays. I transferred the main ray loop into a function under the ray class, so it should be pretty easy to determine a ray’s size now. I also spent time looking at the proof of concept’s running conditions on a regular school computer. The use of a mouse as a control for the camera surprisingly didn’t work and I’m not 100% sure why. It also ran a bit slower than expected, so I might need to change my method of determining ray and wall intersections, or find a better way to draw what the player is seeing to the screen. The most useful resource to me at school right now is the standard computers, as all the computers I have constant access to can run most of these programs with no issue, so I have to ensure I don’t go overboard with features or assets.
Today started off great! We quickly met as a team and discussed the main objectives for each member. We already went ahead and decided that our game will be named “Flash”. As project manager, I got started on the Preliminary Project Scope. I hope to have it mostly complete within the next few days so I can help with the development as soon as I can. I also completed a rough copy of the Gantt chart (a development schedule). Overall, very excited to begin developing with my team at Digital Division!
For the past few days, I have been looking at some prototypes and source codes that have features that I want to implement within our game, one of those things being the ability to interact with 2D sprites within a faux 3D environment through raycasting in pygame. So far so good, as I have already created a class and functions which initialize an image to be used as a texture for the walls in our game. I have also been working on some sprites outside of class which I think are pretty cool.
My favorite thing about making these sprites is seeing how useful having only 8 colours within your palette can really help with encapsulating a single theme or idea. I purposefully chose a theme which contrasts through dark and bright colours to really hone in on the light and dark theme, and the gameplay mechanics and ideas will really showcase this theme as well!
Today I started off pretty okay. Our lead developer tasked me with creating a way of making the map randomize on every run of the code. At first I was having trouble creating a random string with just the specific characters I wanted. I eventually found a way of using a special method to specify a specific letter set and a length of a specific amount of characters. Afterwards I spent the rest of the time at work figuring out the possible ways of implementing the randomized map into a list. Afterwards i went home, didn’t have much time to code but spent a while thinking about how i would make it add to the list at work. I thought up a way of adding to the list and closing off the map without making it sometimes impossible to beat. I gave up for the day and went off to bed. Content with what i made today!