Hello everyone! Long time no see. I had two weeks where I could work for a few hours on my game and some help. In those two weeks a lot of progress has been made and I can't dive too deeply about it but I still want to record progress here so here it comes. Another dev joinedA good school friend of mine that has some free time these days came to help me and mainly worked on the camera! I had a lot of explaining and code review and pair programming to do so I didn't progress on my own but if my friend stays free. I will have a lot of work down in parallel of my work. And that's very precious. Together, with the power of our brain cells and determination. We managed to do a pretty solid camera system for exploration. To keep work centralized, I made a huge discord serverAs more people joined I didn't want to send private message or text or anything to my devs because they work with me out of their free will. It is precious and it shouldn't be pressured. So I made a discord so they can keep track of my progress. On that occasion I invited a few trusted friend as consultants so they can give insight when I'm having open deliberations with myself about how the game should feel and change. I am so thankful for everyone willing to help me out and that warms my heart in those dark times... And by that I mean I just watched the 10th episode of Dangan 3 despair arc and that was a bit traumatic for me... But it's fine. Hard content will make me better! I made a dev debug interfaceAnd I'm pretty proud of it. I've been able to make static debug variable and functions available everywhere INCLUDING in blueprint. It took me some time but it's very easy to integrate anywhere and it doesn't compile when I build as a shipment build which is always good to prevent debug function from even being in the end product code. Lot of little features here and thereI don't have a lot of visual evidence about this but I have been making progress in a lot of alleys. You can see that with the updated Kanban as well as with this now coming list of pushes. Doesn't seem like it but a lot of work. Crazy lot.
Personal notes:
1 Comment
Hello everyone! A god damn lot happened this week. I did learn a lot. I did work a lot. And I'm way more efficient these days. I can't work on this everyday but what I do I'm proud of and things are going faster every week. Also as a reminder, as a one man project... Everything takes long because all the time I spend on hack'n'plan, on programming, on levels, on shaders prevent me from coding and advancing. I'm also reading a lot to iterate and try to do the project as best as I can Here's an update on my kanban organizationI also updated the tags Not going to show it as well but I changed my folder organization as well. No more 2DI wanted to do pixel arts for this project, like the two first GTAs or Darkwoods that are heavy influences on this project. But I can't do that. Well I could but it would be a lot of time going into animating sprites. The reason is simple... It's really hard to produce diversity with spritesThe only way to easily do diversity with sprites is to change the color palette, this way you don't have to draw new animations and still have the same results. That being said. It is way easier to make diversity in 3D. You can change the texture completely which would be the equivalent, but you can also easily add props and accessories to the character model and you can even change the character model... All of that you can do in 3D with one added benefit : you can use the same animation on several models. It means I had to completely rework my architectureThe first reason I worked in a certain way with a pawn and I created and added a bunch of component to a pawn which is the base class you can work with in order to control a character was because I didn't nude a skeletal mesh. It was also to learn to somewhat redo my character and interact with the engine's physic. But this custom pawn lost its interest when I stopped doing 2D and so, it would save me a lot of work to actually go through a character instead of a custom pawn. At first I thought it was too bad because I made a lot of progress on my pawn. Lots of controlAs you can see I'm getting closer of the top down controls I wanted to do with permanent aim sight. The cursor has a weird bug that I'm explaining there, but in its current state, it won't have any impact on the game at all. Also all of these movements can be overridden, and so if I control... Anything, as long as it was a children from that pawn. It would work. The controller will stay forever as this is a single player game but the pawn might change depending on narration, mini games or anything else really. So this was a lot of work to do these simple feats. Because of all that, erasing my work felt wrong... But I did a pretty good job. Before changing the code and moving it to my character. I saved all my progress into my source control to retrieve my work if everything goes bad and... In like... 2 hours. I managed to take all my code changed it, change my references and it worked instantly. I made more documentationSpecifically, about music. I really want for my idea to not change with time and shape my project and have clear place where I save my ideas and I can convey them. Since,,, Why not you can check it out there. If it get's updated you will see it. I really need to work on a more presentable game design document, not a google doc but an actual power point with mock ups and images, or at least references to easily grasp the project. I also documented myself a lot, downloaded Blender and Quixel Mixer, I read a lot about how the engine function exactly and try to really ready myself to master Unreal Engine 4. Also I had a light issue and I wanted to fix it so badYou have no idea. Sometimes the smallest things gets on my mind and I want to fix it so much that I don't do what I'm supposed to do. And this gets encouraged because I work alone. If I want to fix the light I'll do it and I'll spend my life and search everywhere to find hints. Or try everything in the engine and editor until eventualy it is fixed. In order for you to grasp the situation. I'm not going to say the "problem"... Here's a screen of it. Contact me or comment if you find it. I spent a whole afternoon to "fix" this issue City of love work summary as patch notesFinally if you want to precisely know my work... You can check it out bellow as I post every patch notes I made on my git. Here it is ! MondayI actually applied to various studios to see if they'd be open to work with me outside of my school days. I hope I'll get some work but I'm not ultra invested right now. It will be fine as long as I find work before septembre 2021. Tuesday/WednesdayI didn't push my work Tuesday so both days merged... -Added a lot of metadatas and specifiers -Linked the pawn to the controller on possess -Made all the axis and actions functions -Bound horizontal and vertical functions to the controls -Tested it out it works -Create a new physic material -Binded all keys to the controller ( I should make some menu functions inside the controller directly ) -Made movement functions -Made jump functions -Made a simple player state enumerator (not using it currently but will have to) -You can jump infinitly as a result -Made a new Blueprint because the c++ update bugged the last one -Didn't get rid of the last one -Made the capsule collider component the root component -Using it to compute movements -Quickly changed the jump formula to bring it closer to the UE4 metric system ThirsdayThe "light problem" day, also the day I did my aiming code -Added a function to get the velocity in the player pawn -Made a function in the tick of the controller to get inworld cursor position -Cleaned a bunch of comment and useless code -Forgot to put the UFUNCTION macro above the getter -Fixed some shadows and lights Friday (day of writing this post)Lot happened today, good day of work gents! -Can move through Character -Can jump through Character -Camera is still doing its camera stuff -I learned a lot about Unreal Game Framework -My gitignore didn't ignore right because of it's location. Fixed it... I'm stupid -Made a blueprint for the character -Added a mesh -Cleaning starts -Pawn was deleted -InputComponent was deleted -CapsuleComponent was deleted -SkeletalMesh component was deleted -Map was tested Final huge news: Amplifying Voices!So my school was chosen amongst many to send students to work with other students from the US as well as Canada. The goal is to talk about inclusion, diversity and do a small Unity project about that. I've sent an application because it was a week where I didn't have school in case of, sent a color letter about my intentions and my background and heck. They selected me. From all the students of Isart Digital that did an application, mine was held. So I signed a thing and now, I'm apart of the thing. Unless something very bad happened like a mistake. You guys have no idea how pumped I am. I hope I'll make a beautiful game with beautiful people! That's it!If anyone is reading, thanks for that. That is the kind of investment I do not understand. Stay strong, stay loved, and see you guys next time o/
This is going to be a weird sentence. But as expected everything is harder than expected! Doing a game alone is no easy task everyone knows that. But I'm actually just doing a vertical slice and present it as a game! Still... Progress as been made. I'm just getting lost in my unlimited tasks in all fields. And I like that! It keeps things fun. But it makes the actual coding go a lot slower than if I was only focusing on programming. Still, let's present what has been going on. Organization leveled upAgain. I feel like at some point. Some people are going to join me and help me. And to accommodate. I created my own hack'n'plan to use kanban and priority request I assign to myself in order to increase my workflow and allow anyone to easily join. Also I'm using tags on top of the kanban to also do good debugging and also if I need to focus on specific types of tasks. (I also did a tag for documents but I didn't bother to take another screen... Sorry!) The project evolved a lotSo now I have a debug map that is way bigger than what I showed last. I also coded a lot. A lot of architecture and not actual features. But I'm trying my best to shape up a system and then get used to it and then surf on it like a beauty. And I have a first sight of what the game will look like with that architecture. I'm trying to do a lot of things to give myself freedom. The game might have more than one controlled character for very specific instances. So I have to code the actual control managing in the controller but the character functions IN the pawn... Once the polymorphism is done, I'll have a lot of freedom. Anyway, so far I just have the view of the game and I already feel glad about how it feels. As creative you always doubt. And I do... For sure. But it doesn't mean I can't keep going on and trying. That should be all for this week. To anyone reading. Take care of yourself. And thank you for reading.
Next week is school week. We'll see how I'll do! More set up. Still not too much code.I'm sad I didn't code too much (even though to be honest I did some minor shaders... And this game isn't going to be shader heavy ). But I did quite a lot of work which I'm happy about. I'll do some quick points so it's much more visual and impactful! Ready? Set... Go! Gotta fix a little bugIn summaryGoing from just creating the project to do a little bit of prep work for a good debugging environment, coding materials around a folder architecture using only material instances in a scene deriving from a master material. And also git if I ever want to work online with someone, all of that in one day. Is pretty good to be honest! If you pay attention to my git commit you'll see I write them like a patch note so it'll be easier to follow my work. If you want to see it more clearly here it is!
Have a nice day everyone!
Just so you know this is going to be a small article, this post is just a little update about my work. I have to do a project about spatialisationSpatialisation! Have you heard of it? It's amazing. It is basically EPIC OPTIMIZATION! The name seems to suggest that it only applies about objects in space and while it might be true. It can also simply apply to abstract and hard to understand when you don't work with it data. Usually, when you search for data. The easiest and most common way when you are searching through all the data of your application. Like let's say in a video game, all the enemies on screen. You might want to check their health and you want like this big skynet IA to tell each of them what to do based on that health. So them IAs, they right now don't need to act because of position but because of health. And to be sure you have to check each and every one of them every frame and honestly it sucks. Well there are methods to make it quicker and basically it all come to one thing: sort them. Sorting is the new black (not really but let's pretend)So these IA's, instead of going through all of them. Let's say we sort them and we sort them only when they get damaged, like we put them at the beginning of the list. Then once we find one of them that is full health, we just stop. Because we know there is no more wounded IA's that needs to be checked. I know there are better ways to handle things like that than my made up example, but let's go with an HOORAY for now. I have a lot less tests to do, my thousands of AI are way less computed. Stuff is cool. Now what did school ask me to do about that ? Octrees... Octrees is a way of testing things between them based on proximity. And my job is to prove that it is way easier to compute things between them using an octree instead of an array or other sorting methods. My project, my progressOctrees works way better with space so I'm going to do a little project about that on... UE4 (for no real reason, I just wanted to and experiment with the engine, and since it's a school project well...) So anyway here is an amazing photograph of my thoughts drawn poorly on paper! Don't pay too much mind into my amazing programmer's notebook but on the drawings and maybe what's written. I'm going to use UE4's colliders and compute them inside the tick/the function executed every frame to detect if object are overlapping each others instead of using unreal inbuilt system. I'll do that using a simple array vs an octree. I'll do a static project first and then a dynamic one with moving elements inside the limit of a box . Static project will have:
So far I have just done a basic debugging environment but I feel pretty good about what I did. There's not much visual about what I did but here's a sample! Also I failed horribly when I started and it's hilarious so here it is.
|
LukasInterest in video games since forever and till I'll die Archives
April 2021
Categories
All
|